ios - NSUserDefault有时不会自行保存

标签 ios save nsuserdefaults

我的应用程序正在接受床检,因为用户每次进入应用程序时都必须恢复购买的交易...这让我发疯,因为我的iPhone上没有这个问题。交易完成后,我的应用会调用以下代码:

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

而已!然后,应用检查if([self.data objectForKey:@"fullBought"] != [NSNumber numberWithInt:1)

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

请帮助我找出问题所在...

最佳答案

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

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

您应该比较它们的值。使用此运算符,您正在比较内存地址。
您应该做的是:
if([[self.data objectForKey:@"fullBought"] intValue] != 1)

关于ios - NSUserDefault有时不会自行保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25469641/

相关文章:

ios - 从图像中捕获文本 - SwiftUI

ios - 从 NSUserDefaults 中删除 key 不起作用

Objective-C NSUserDefaults 缓存会阻止其他应用程序准确读取更改

ios - Split View MasterView 未显示在弹出窗口中但滑入

ios - Ionic 2 无法使用来自 IOS 模拟器资源的音频文件

java - 使用 Java 打开和编辑 .jar 中的文件?

java - 如何在 Java 中修改 HTML 文件并保存更改

android - 如何在android中将整数保存到sql数据库?

ios - 加载时从 NSUserDefault 加载开关状态

ios - 如何比较数组与嵌套数组并打印匹配对,而不是匹配的值列表? (代码有助于说明)