问题描述
|
我正在尝试使用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语句中的代码不应该只执行一次吗?
非常感谢您的智慧!
解决方法
取决于您再次执行此操作的速度。
NSUserDefaults不会立即同步。如果要执行此操作,则需要在设置值后调用
[[NSUserDefaults standardUserDefaults] synchronize];
。
,使用syncnize关键字在NSUserDefaults中检索数据
[[NSUserDefaults standardUserDefaults]同步];
这将检索并显示数据。