微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的NSUserDefault值未写入?

如何解决为什么我的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]同步]; 这将检索并显示数据。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。