2011-04-06 121 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.