为什么我的NSUserDefault值未写入?

| 我正在尝试使用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]同步]; 这将检索并显示数据。     

要回复问题请先登录注册