2013-02-11 15 views
1

我是iPhone開發新手,請耐心等待。 我試圖從另一個視圖控制器訪問存儲在AppDelegate中的數組,但是當我這樣做時告訴我該數組是空的。應用程序委託中的全局變量不保存

我在名爲containerTypeArray的AppDelegate中創建了一個NSMutableAarray。 我建立與在AppDelegate方法的對象數組稱爲:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

之後,我初始化和對象我的數組的大小是92由以下的NSLog消息證實INIT:

NSLog(@"container type size %i", [containerTypeArray count]); 

我嘗試在不同的視圖控制器中引用數組變量。 在這個視圖控制器我導入appdelegate.h文件,並寫入視圖下沒有加載方法:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSLog(@"count at load %i", [appDelegate.containerTypeArray count]); 

這一次的NSLog數爲0

有人能告訴我是什麼」米做錯了嗎?謝謝!

回答

2

這是因爲application:didFinishLaunchingWithOptions是在viewDidLoad之後調用的。

application:didFinishLaunchingWithOptions的文檔:

你應該使用這個方法(和相應的應用中:didFinishLaunchingWithOptions:方法)來初始化應用程序並準備運行。此方法在您的應用程序啓動後調用,其主要故事板或筆尖文件已被加載,但尚未恢復您的應用程序狀態。在調用此方法時,您的應用程序處於非活動狀態。

因此,在應用程序:didFinishLaunchingWithOptions方法被調用之前加載視圖。這些方法的時間有related SO question

+0

有趣!謝謝! – tanya 2013-02-12 18:35:04

+1

在StackOverflow上,您通過upvoting和接受答案表示感謝。請。 :) – 2013-02-12 23:14:46

相關問題