我正在尝试使用NSUserDefaults来跟踪我的iOS应用中的一些促销数据,但它并没有像我期望的那样工作。这是代码......
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 :(得分:4)
取决于你再次经历这么快的速度。
NSUserDefaults不会立即同步。如果您想这样做,则需要在设置值后调用[[NSUserDefaults standardUserDefaults] synchronize];
。
答案 1 :(得分:1)
使用synchronize关键字在NSUserDefaults中检索您的数据
[[NSUserDefaults standardUserDefaults] synchronize];
这将检索并显示数据。