Iphone iPad3和NSUserDefaults问题

Iphone iPad3和NSUserDefaults问题,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我有两个应用程序在iTunes中获得批准并可用。我在装有iOS 5.0的iPad2上测试了它们。它们是通过应用程序中的应用程序内购买解锁的一些功能。一旦用户成功购买了某项功能,我会检查以确保交易成功,并通过设置NSUserDefaults变量来解除锁定 最近,我的一些iPad3用户一直抱怨他们购买了一项功能,但它仍然没有锁定。我没有iPad3,所以我在iPad2上测试了发布的代码,效果很好 还有其他人在iPad3上遇到过同样的问题吗?iOS 5.1中的NSUserDefaults是否存在一些bu

我有两个应用程序在iTunes中获得批准并可用。我在装有iOS 5.0的iPad2上测试了它们。它们是通过应用程序中的应用程序内购买解锁的一些功能。一旦用户成功购买了某项功能,我会检查以确保交易成功,并通过设置NSUserDefaults变量来解除锁定

最近,我的一些iPad3用户一直抱怨他们购买了一项功能,但它仍然没有锁定。我没有iPad3,所以我在iPad2上测试了发布的代码,效果很好

还有其他人在iPad3上遇到过同样的问题吗?iOS 5.1中的NSUserDefaults是否存在一些bug或问题

这是密码

NSArray *stringsArray2a = [[NSArray alloc] initWithObjects: @"1", nil];
        [[NSUserDefaults standardUserDefaults] setObject:stringsArray2a forKey:@"MyAppWeatherPackStr"];
        [[NSUserDefaults standardUserDefaults] synchronize];
然后我像这样检查它

     NSArray *purchasedAppArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyAppWeatherPackStr"];
        NSString *purchasedAppStr = [purchasedAppArray objectAtIndex:0];

if([purchasedAppStr isEqualToString:@"1"])
    {
        //all good keep checking weather

    }
    else
{
//can't check weather
}

我不认为同步有什么意义,但更好的选择是:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:forKey stringsArray2a:@"1"];
我不确定问题是否出在NSUser的默认设置上,因为我没有足够的运气拥有iPad3


一个好主意是不要将应用内购买数据存储在NSUserDefaults中,因为您只需修改plist文件,使其看起来像您购买的…

您的代码是什么样子的?数组是否包含多个字符串?不,它始终包含一个字符串。有一件事,代码不是这里的问题。如果是这样,我将无法在运行iOS 5.0的iPad2上成功测试。所以它一定是iOS 5.1中的什么东西?虽然我不知道。如果出现问题,现在可能会引起轩然大波。你确定iPad 2上的客户已经购买了该组件吗?我建议检查实际调用3行保存为NSUserDefault的代码。NSUserDefaults代码可能不是您的问题,可能是收据验证的问题。您如何修改plist?该代码实际上做什么?方法
setObject:stringsArray2a:
来自何处?越狱电话可以简单地修改用户默认值plist,因为它是以明文存储的。@borrden如果用户越狱了他们的电话,很可能他们是无论如何都不会付款的客户类型-因此他们不是您的客户这有点麻烦大胆的声明,越狱并不会让你变成一个坏人,但我不会用道德辩论来淹没你的问题。我只是想指出一种技术方法。