NSUserDefault 有时不会保存自己

Posted

技术标签:

【中文标题】NSUserDefault 有时不会保存自己【英文标题】:NSUserDefault some times doesn't save itself 【发布时间】:2014-08-24 07:51:08 【问题描述】:

我的应用获得了床位评论,因为用户每次进入应用时都必须恢复购买...这让我抓狂,因为我的 iPhone 上没有这个问题。进行交易时,我的应用会调用以下代码:

[self.data setObject:[NSNumber numberWithInt:1] forKey:@"fullBought"];
[self.data synchronize];

就是这样!然后应用检查if([self.data objectForKey:@"fullBought"] != [NSNumber numberWithInt:1)

我试图删除[self.data synchronize],但我什至无法检查结果,因为我没有那个问题!

请帮我找出问题...

【问题讨论】:

self.data 是什么? self.data = [NSUserDefaults standardUserDefaults]; 【参考方案1】:

NSUserDefaults 似乎不是问题。 您在此指令中使用“!=”运算符比较对象:

if([self.data objectForKey:@"fullBought"] != [NSNumber numberWithInt:1)

您应该比较它们的值。使用此运算符,您可以比较内存地址。 你应该做的是:

if([[self.data objectForKey:@"fullBought"] intValue] != 1)

【讨论】:

会试一试,我认为这就是解决方案。但是为什么我的代码可以在我的设备上运行,并且在用户没有杀死应用程序的情况下对用户有用? 非常感谢 ;) 忘记了我无法测试...会尝试对一些报告问题的人处以罚款并要求他们为我测试。

以上是关于NSUserDefault 有时不会保存自己的主要内容,如果未能解决你的问题,请参考以下文章

我可以根据另一个 NSUserDefault 值保存 NSUserDefault 值吗?

接收 NSUserDefault 时崩溃(保存数据)

如何将可映射对象保存到 nsuserdefault?

NSUserDefault的使用

如何在 NSUserDefault 中保存我的数据类型?

从 NSUserDefault 保存和检索数据时,保存按钮无法正常工作