iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 找到了名为’tag’的多个方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

为什么我在下面的代码中收到此警告: - (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’的多个方法所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。