2011-04-06 68 views
0

我有一个应用程序与选项卡控制器,显然有一定数量的选项卡。每个视图控制器在TabController,分享一些信息,所以我决定把那些在AppDelegate的和合成的NSDictionary的一切,所以我可以用抑制iphone应用程序maynotRespond警告

[[[UIApplication sharedApplication] delegate] sharedInformations]; 

解决方案的工作很好,我想这是相当不错的访问那些(我接受更好的解决方案)。显然,编译器警告我[[UIApplication sharedApplication]委托]可能不会响应方法sharedInformations,因为他没有在协议中找到该方法,但我知道它会。

问题是:我该如何抑制该警告?

回答

2

你可以将它转换:

[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] sharedInformations]; 

或稍整洁:

MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
… = appDelegate.sharedInformation; 

您也可以封装您的共享信息在一个单独的类,并完成类似

#import "MySharedInfo.h" 

MySharedInfo *sharedInfo = [MySharedInfo sharedInfo]; 
// etc.