iPad 3和NSUserDefaults存在问题

时间:2012-04-07 01:46:48

标签: iphone ios xcode ipad

我有几个已获批准并可在iTunes中使用的应用。我在带有iOS 5.0的iPad 2上测试过它们。它们是通过这些应用中的应用内购买解锁的一些功能。一旦用户成功购买某个功能,我会检查以确保交易成功并通过设置NSUserDefaults变量来解锁。

最近,我的一些iPad 3用户一直在抱怨他们购买了一项功能,但仍未解锁。我不拥有iPad 3,所以我测试了iPad 2上发布的代码,它运行得很好。

还有其他人遇到过与iPad 3相同的问题吗?在iOS 5.1中是否存在NSUserDefaults的错误或问题?

这是代码

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
}

1 个答案:

答案 0 :(得分:-2)

我没有看到同步点,但更好的替代NSUserDefaults是:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:forKey stringsArray2a:@"1"];

我不确定问题出在NSUser的默认设置上,因为我不幸拥有iPad 3。

一个好主意是在NSUserDefaults中存储应用内购买数据,因为您可以修改plist文件,使其看起来像您购买的那样......