我的AppDelegate_Phone类的方法为-(void)doSomething
。如何在View Controller viewController
中调用它?
我试过了:
[[[UIApplication sharedApplication] delegate] doSomething];
没有运气。
doSomething not found in protocol
编辑。正在执行操作,但警告在XCode中仍然存在。警告意味着什么?
答案 0 :(得分:3)
编译器正在告诉你到底出了什么问题(如果由于嵌套表达式而有点难以理解); -delegate
返回一个响应UIApplicationDelegate
协议的对象,其方法不属于该协议。
解决这个问题最直接的方法是使用类型转换:
[(AppDelegate_Phone *)[[UIApplication sharedApplication] delegate] doSomething];
答案 1 :(得分:3)
您必须将委托转换为自定义委托类,然后调用doSomething。代码示例如下:
MyAppDelegate *myAppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[myAppDelegate doSomething];