2011-10-20 24 views
0

不知何故,以下提到的代碼似乎刪除我~/Library/Preferences/NAME.PRODUCT.plistNSUserDefaults setValue:刪除我的plist。發生了什麼?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setValue:NO forKey:@"ViewFirstShown"]; 
    [defaults synchronize]; 

我可以確認的plist文件是否存在被稱這些行之前。但運行上述代碼後,plist文件會立即消失。

我以爲synchronise立即將值寫入disk。我也等了一會兒,但是plist不再出現。

我錯過了什麼?

在此先感謝。

回答

1

沒有足夠的信息來真正回答你的問題。

在執行上面的代碼時,「ViewFirstShown」鍵是首選項plist中的唯一鍵嗎?如果是這樣,那麼-setValue:forKey:調用將刪除首選項中的最後一個鍵,這將刪除首選項plist。

還有一點需要注意的是,您使用的是-[NSUserDefaults setValue:forKey:],其值爲id。因爲NO0L,這實際上是nil您正在刪除此處的任何值。您可能想要使用-[NSUserDefaults setBool:forKey:]代替。

+0

謝謝!這確實是發生了什麼事。 'ViewFirstShown'是plist中唯一的關鍵。我將它改爲'setBool',一切正常! – AReality