IPhone中[MKStoreManager sharedManager]出错?

时间:2012-03-30 12:27:54

标签: iphone in-app-purchase

我有一个应用程序,我正在实施 MKStorekit4 以进行自动更新购买。我已经成功复制了代码。当我尝试在我的appdelegate上调用[MKStoreManager sharedManager];时,它会抛出错误"cannot add nil observer"然后崩溃。

这是我的代码

+ (MKStoreManager*)sharedManager
{
    @synchronized(self) {

        if (_sharedStoreManager == nil) {
#if TARGET_IPHONE_SIMULATOR
            NSLog(@"You are running in Simulator MKStoreKit runs only on devices");

#else
            _sharedStoreManager = [[self alloc] init];                  
            _sharedStoreManager.purchasableObjects = [[NSMutableArray alloc] init];
            [_sharedStoreManager requestProductData];                       
            _sharedStoreManager.storeObserver = [[MKStoreObserver alloc] init];

            [[SKPaymentQueue defaultQueue] 
addTransactionObserver:_sharedStoreManager.storeObserver];            
            [_sharedStoreManager startVerifyingSubscriptionReceipts];

#endif

        }
    }
    return _sharedStoreManager;
}

我做错了什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这意味着您的_sharedStoreManager.storeObserver为零。 但那真的很奇怪。

NSLog("Observer %@",[_sharedStoreManager.storeObserver description])之后尝试_sharedStoreManager.storeObserver = [[MKStoreObserver alloc] init];,看看它是否真的已分配。