2011-04-18 22 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

相关问题