2011-04-18 46 views
1

我試圖利用NSUserDefaults來跟蹤iOS應用中的一些促銷數據,但它並不像我期待的那樣工作。這裏的代碼...爲什麼我的NSUserDefault值不被寫入?

NSString *promoID = [[[self currentPromo] allKeys] objectAtIndex:0]; 

if(![[NSUserDefaults standardUserDefaults] boolForKey:[NSString stringWithFormat:@"promoid-%@", promoID]]) 
{ 
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:[NSString stringWithFormat:@"promoid-%@", promoID]]; 
. 
. 
. 

每次這個if語句被執行時,裏面的代碼被執行。這個if語句中的代碼不應該只執行一次嗎?

非常感謝您的智慧!

+0

你在哪寫過這段代碼?在哪種方法?你怎麼叫它? – Ravin 2011-04-18 04:33:45

+0

爲什麼這很重要? – BeachRunnerFred 2011-04-18 04:44:09

+0

你使用設置包嗎? – 2011-04-18 04:47:15

回答

4

取決於你經歷了多快的速度。

NSUserDefaults不會立即同步。如果你想這樣做,你需要在設置一個值後調用[[NSUserDefaults standardUserDefaults] synchronize];

+0

謝謝你,修好了!十分鐘過後,我會盡快接受你的回答。再次感謝! – BeachRunnerFred 2011-04-18 04:36:31

1

使用同步關鍵字來檢索您的NSUserDefaults的數據

[NSUserDefaults的standardUserDefaults]同步]。

這將檢索並顯示數據。

+0

非常感謝,我沒有那樣做,幾乎瘋了,坦克很多! – 2013-08-23 07:49:35

相關問題