iphone – 找到了名为’tag’的多个方法

iphone – 找到了名为’tag’的多个方法,第1张

概述为什么我在下面的代码中收到此警告: - (IBAction)shareThisActionSheet:(id)sender{ int row = [sender tag]; //warning is here! Multiple methods named 'tag' found ... 描述 问题是编译器在当前转换单元中看到多个名为tag的方法,并且这些声明具有不同的返回类型. 为什么我在下面的代码中收到此警告:

- (IBAction)shareThisActionSheet:(ID)sender{    int row = [sender tag]; //warning is here! Multiple methods named 'tag' found    ...
解决方法 描述

问题是编译器在当前转换单元中看到多个名为tag的方法,并且这些声明具有不同的返回类型.一个可能是 – [UIVIEw标签],它返回一个NSInteger.但它也可以看到标签的另一个声明:

@interface MONDate- (Nsstring *)tag;@end

然后编译器看到一个歧义 – 发送者是UIVIEw吗?还是MONDate?

编译器警告您必须猜测发件人的类型是什么.这真的要求未定义的行为.

解析度

如果您知道参数的类型,请指定它:

- (IBAction)shareThisActionSheet:(ID)sender{ UIVIEw * senderVIEw = sender; int row = [senderVIEw tag]; ...

否则,使用诸如isKindOfClass:condition之类的东西来确定在传递变量之前声明变量的类型.正如其他答案所示,你也可以进行类型转换.

总结

以上是内存溢出为你收集整理的iphone – 找到了名为’tag’的多个方法全部内容,希望文章能够帮你解决iphone – 找到了名为’tag’的多个方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存