2012-12-25 58 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」。

相關問題