Iphone 名为'的多个方法;标签';发现结果不匹配
我在我的项目中添加了Iphone 名为'的多个方法;标签';发现结果不匹配,iphone,objective-c,ios,Iphone,Objective C,Ios,我在我的项目中添加了GDataframework,添加之后,我发现了错误 “找到多个名为“tag”的方法,但结果不匹配。”。如果我删除了GDataFramework,它就可以正常工作。我可以在GDataFramework中进行修改吗?或者我应该在我的项目中进行修改吗 int buttonTag=[sender tag] //here that error prompts up at every place in my project 此链接有一个与您的问题类似的问题:请尝试遵循您自己的应用程
GDataframework
,添加之后,我发现了错误
“找到多个名为“tag”的方法,但结果不匹配。”。如果我删除了GDataFramework
,它就可以正常工作。我可以在GDataFramework
中进行修改吗?或者我应该在我的项目中进行修改吗
int buttonTag=[sender tag] //here that error prompts up at every place in my project
此链接有一个与您的问题类似的问题:请尝试遵循您自己的应用程序中对此问题的答案的指导原则。您的代码是否包含在操作方法中,如下图所示
- (IBAction)buttonPressed:(id)sender {
int buttonTag = [sender tag];
}
然后,您可以通过将id
替换为正确类型的发送者(UIButton*
在这种情况下)来解决问题:
因为编译器随后知道sender
是UIButton
类的一个实例,因此知道此处应用的是哪个tag
方法
请注意,在Xcode中创建连接时,您已经可以定义正确的类型:
在一种情况下,如果创建对象的工厂方法具有返回类型“id”,则编译器将检查所有类中的方法签名。如果编译器在多个类中发现相同的方法签名,则会引发问题。因此,将返回类型“id”替换为“specific class name”。我认为int buttonTag=[[sender tag]intValue];也许能解决你的问题。当具有“相同名称”的方法返回“相同类型的值”(意味着如果两个方法都返回(id)),则会出现此问题。或者您可以使用int buttonTag=[(int)sender标记];
- (IBAction)buttonPressed:(UIButton *)sender {
int buttonTag = [sender tag];
}