2012-07-21 66 views
0

IM還挺新到iOS,我有,我使用NSMutableArray很難與我的數組,我已經把我的AppDelegate, 陣列在應用程序的第一次加載在我viewController數組沒有任何對象,但我有一個設置,把我的整數數組, 但保存數組未加載後,但退出然後重新打開,它將加載, 可以請某人解釋我該如何解決和爲什麼這是這樣嗎? 使用它的我。的NSMutableArray沒有更新

app delegate

self.integers = [NSMutableArray array]; 
for(int i = 0; i <= 10; i++) 
{ ..... 
    } 

加載:

integers = ((AppDelegate *)[[UIApplication sharedApplication] delegate]).integers; 

回答

1

我的回答:

某處在你的代碼中有加載您的整數,並將它們放入您的陣列中的循環,右? 您需要將該循環放入方法中,並在您想將UITableVIew內容重置爲其原始內容時再次調用該循環。 然後,你需要在你的AppDelegate和你viewController更新數組,所以要根據其類,方法是,你需要使用

integers = ((AppDelegate *)[[UIApplication sharedApplication] delegate]).integers; 

// your array then update 
self.integerss = [NSMutableArray array]; 

    for(int i = 0; i <= 10; i++) 
    { ..... 
     } 

((AppDelegate *)[[UIApplication sharedApplication] delegate]).integers = self.integers; 
的整數複製到其他類

使用您最初用於數組的相同代碼將所有整數放回,然後在tableview上調用reloadData。 這將解決您的問題。

+4

這確實可以解決您的問題,但我也建議重新安排您的設計 - 我可以看到爲什麼應用程序委託應該與應用程序數據層有關並保存整數數組沒有很好的理由。 – Stavash 2012-07-21 12:47:54

+2

我的意思是AppDelegate類不適用於你使用它的任何東西。開發人員經常會犯這個錯誤,因爲它是第一個運行的代碼。我建議將這個數據實體移動到一個管理數據的類。 – Stavash 2012-07-21 12:54:48