2012-12-25 38 views
3

我在我的项目中添加了GDataframework,添加后,我收到错误 “找到多个名为'tag'且方法不匹配的结果。如果我删除GDataFramework比它工作正常。我可以修改GDataframework或我应该在我的项目中完成?找到多个名为“tag”的方法,结果不匹配

int buttonTag=[sender tag] //here that error prompts up at every place in my project 
+0

我认为int buttonTag = [[sender tag] intValue];可能会解决你的问题。当“同名”方法返回“相同类型的值”(意味着如果两个方法返回(id))时,会发生此问题。 – Bhavin

+0

或者你可以使用int buttonTag = [(int)sender tag]; – Bhavin

回答

17

您的代码是否在一个操作方法中,像这样?

- (IBAction)buttonPressed:(id)sender { 
    int buttonTag = [sender tag]; 
} 

然后你就可以用(在这种情况下UIButton *)的正确类型发件人的更换id解决的问题:

- (IBAction)buttonPressed:(UIButton *)sender { 
    int buttonTag = [sender tag]; 
} 

因为编译器就知道这senderUIButton的一个实例类,因此知道在哪里应用哪个方法。

注意,您可以创建在Xcode连接时已经确定了正确的类型:

enter image description here

+0

谢谢你......这个解决了我的问题 – Shoaib

0

在一个场景中,如果创建对象的工厂方法具有返回类型“ID”,那么编译器将检查所有类中的方法签名。如果编译器在多个类中找到相同的方法签名,则会引发问题。所以用“特定类名”替换返回类型“id”。

相关问题