让App Delegate执行操作?

时间:2010-06-25 03:39:18

标签: objective-c iphone delegates

我的AppDelegate_Phone类的方法为-(void)doSomething。如何在View Controller viewController中调用它?

我试过了:

[[[UIApplication sharedApplication] delegate] doSomething];

没有运气。

doSomething not found in protocol

编辑。正在执行操作,但警告在XCode中仍然存在。警告意味着什么?

2 个答案:

答案 0 :(得分:3)

编译器正在告诉你到底出了什么问题(如果由于嵌套表达式而有点难以理解); -delegate返回一个响应UIApplicationDelegate协议的对象,其方法不属于该协议。

解决这个问题最直接的方法是使用类型转换:

[(AppDelegate_Phone *)[[UIApplication sharedApplication] delegate] doSomething];

答案 1 :(得分:3)

您必须将委托转换为自定义委托类,然后调用doSomething。代码示例如下:

MyAppDelegate *myAppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[myAppDelegate doSomething];