productPurchased:
(如果您使用教程中的IAPHelper)只是簡單地檢查產品是否包含在數組中。
你是如何填充該數組的? (即:[RageIAPHelper sharedInstance]
是如何實現的
當我用它,我填充我的產品,並與它inited IAPHelper(如下圖所示),然後將其初始化通過NSUserDefaults的購買的產品:
- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers {
if ((self = [super init])) {
// Store product identifiers
_productIdentifiers = productIdentifiers;
// Check for previously purchased products
_purchasedProductIdentifiers = [NSMutableSet set];
for (NSString * productIdentifier in _productIdentifiers) {
BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier];
if (productPurchased) {
[_purchasedProductIdentifiers addObject:productIdentifier];
NSLog(@"Previously purchased: %@", productIdentifier);
} else {
NSLog(@"Not purchased: %@", productIdentifier);
}
}
// Add self as transaction observer
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
}
return self;
}
然後,只需productPurchased檢查該數組:
- (BOOL)productPurchased:(NSString *)productIdentifier {
return [_purchasedProductIdentifiers containsObject:productIdentifier];
}
看來相關的代碼是在'productPurchased:'方法,如果你需要幫助,你需要提供有關該方法的相關細節 – rmaddy
順便說一句 - 你有沒有實際採取調試時間你代碼並查看爲什麼'productPurchased:'總是返回'NO'? – rmaddy