2011-04-21 81 views
-1

我有一堆userdefaults值的,我用它來加載我的UITableView在NSUserDefaults的覆蓋新值與舊

-(void) prepareDisplay 
{ 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

    table.dataSourceArray = [standardUserDefaults objectForKey:@"dataSource"]; 

} 

- (無效)viewDidLoad方法 {

[self prepareDisplay]; 

} 

,它工作正常到這一點。

然後在以後我改變userdefaults值和同步。然後我必須重新加載我的表格。但在此之前,我需要使用相同的設置數據源陣列

  • prepareDisplay()方法。

在這裏,我想,我在我viewDidLoad中創建userdefaults的情況下更早覆蓋或與我userdefaults價值搞亂並再次,而不是調出舊值新設定的value.My新設置userdefaults值用舊值重寫。我在執行userdefaults重置之後檢查了應用程序沙箱中的plist文件並正確反映了值。但後來,我不知道如何以及何時,他們被舊的價值觀覆蓋。我確信我沒有明確地將它們重置後搞砸。

任何人都可以幫忙。由於

+0

檢查,如果你不知情的情況下重新設置舊值。 – EmptyStack 2011-04-21 07:59:26

回答

1

事實上,因爲它是一個singletone對象,你不需要爲NSUserDefaults的實例變量。躲開它。此外,您可以檢查相同對象的方法- (BOOL)synchronize,其中將對持久域的任何修改寫入磁盤,並將所有未修改的持久域更新爲磁盤上的內容。

+0

我已經完成了你提到的所有事情。我的術語可能有點不正確。我檢查了從同步返回的bool。我甚至說過,我已經看到了沙箱plist文件中的更改值。我想我已經弄清楚了什麼是錯的。讓我糾正並回來。 – amateurcoder 2011-04-21 07:56:57

+0

我在做一個愚蠢的錯誤。對不起,打擾你們。 – amateurcoder 2011-04-21 08:09:08

+0

你爲什麼把-1放到我的答案? – 2011-04-22 06:06:32