2012-01-26 54 views
0

我是iOS 5的新手,并且遇到与代理和segues有关的问题。iOS警告:语义问题(多个方法命名'setDelegate:'找到)

我有一个主视图控制器,可以连接到SettingsViewController。我做了主VC设置VC的这个代码代表:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"SETTINGS"]) { 
     [[segue destinationViewController] setDelegate:self]; 
    } 
} 

SettingViewController然后塞格斯多个选项屏幕。我试图让SettingsViewController这些选项屏幕的代表,但我得到在两个地方(MainViewControllerSettingsViewController)发现setDelegate:方法的警告。

如何最好地解决这个问题?谢谢!

P.S.我发现只有在编译器设置中启用严格选择器匹配警告时(在教程书的建议中),才会收到此警告。丢开?解决问题?我真的不知道......

+0

离开这个警告关闭。这没有帮助。如果你真的想要它,你可以通过将'[segue destinationViewController]'的结果转换为适当的类型来抑制警告。 –

+0

谢谢,凯文。你能给我一个铸造的例子吗?我听说过这个词,但我不太确定它会是什么样子。 –

回答

0

这应该足以视图控制器转换为已知类型:

[(SettingsViewController *)[segue destinationViewController] setDelegate:self];