我的应用程序正在进行床评,因为用户每次进入应用程序时都必须恢复购买...这让我发疯,因为我的iPhone上没有这个问题。交易完成后,我的应用程序会调用以下代码:
[self.data setObject:[NSNumber numberWithInt:1] forKey:@"fullBought"];
[self.data synchronize];
那就是它!然后应用检查if([self.data objectForKey:@"fullBought"] != [NSNumber numberWithInt:1)
。
我尝试删除[self.data synchronize]
,但我甚至无法检查结果,因为我没有遇到这个问题!
请帮我解决问题...
答案 0 :(得分:3)
NSUserDefaults似乎不是问题。 您正在使用此指令中的“!=”运算符比较对象:
if([self.data objectForKey:@"fullBought"] != [NSNumber numberWithInt:1)
你应该比较他们的价值。使用此运算符,您将比较内存地址。 你应该做的是:
if([[self.data objectForKey:@"fullBought"] intValue] != 1)