首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >发现“多个名为'xxx:‘的方法”错误

发现“多个名为'xxx:‘的方法”错误
EN

Stack Overflow用户
提问于 2009-06-24 04:51:11
回答 2查看 24K关注 0票数 30

在我当前的项目中,在ViewController.m文件中,我正在运行以下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[connection writer] writeData: data];

它返回警告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
warning: multiple methods named 'writeData:' found

我正在尝试调用该方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void) writeData: (NSData*)data

...in TCPWriter.m.不幸的是,还有另外两种writeData方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)writeData:(NSData *)data;

...in NSFileHandle.h和...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (BOOL)writeData:(NSData *)data

...in NSURLHandle.h.这对我来说尤其令人困惑,因为[conn writer]应该返回TCPWriter类,而该类应该调用正确的writeData方法。此外,我甚至不能完全确定NSFileHandle.h和NSURLHandle.h是否包含在ViewController.h包含的任何库中,而不是包含在项目的不同部分中。

我如何向编译器显示我想要调用哪个writeData方法,以及为什么会发生这个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-24 05:11:23

确保连接编写器实际上返回一个TCPWriter*。如果它返回一个id,那么编译器将不知道使用哪个writeData。此外,确保您导入的是TCPWriter.h文件-如果编译器看不到头文件,它将默认返回id,这将使您返回相同的问题。

试一试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TCPWriter* writer = [connection writer];
[writer writeData: data];

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[(TCPWriter*)[connection writer] writeData: data];
票数 54
EN

Stack Overflow用户

发布于 2014-01-06 09:01:32

作为上面精彩答案的替代方案,您可以将对象强制转换为正确的类型,以消除警告,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[(NSView*)textView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; // for horizontal scrolling
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1038171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文