@property (nonatomic, strong) NSMutableDictionary * products; //not synthesized in .m
.M
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"Loaded list of products...");
_productsRequest = nil;
NSArray * skProducts = response.products;
for (SKProduct * skProduct in skProducts)
{
IAPProduct * product = _products[skProduct.productIdentifier];
product.skProduct = skProduct;
product.availableForPurchase = YES;
}
for (NSString * invalidProductIdentifier in response.invalidProductIdentifiers)
{
IAPProduct * product = _products[invalidProductIdentifier];
product.availableForPurchase = NO;
NSLog(@"Invalid product identifier, removing: %@", invalidProductIdentifier);
}
NSMutableArray * availableProducts = [NSMutableArray array];
for (IAPProduct * product in _products.allValues) {
if (product.availableForPurchase) {
[availableProducts addObject:product];
}
}
_completionHandler(YES, availableProducts);
_completionHandler = nil;
}
我在與線下的麻煩:
IAPProduct * product = _products[skProduct.productIdentifier];
我想我們正在設置類型IAPProduct *product= NSMutableDictionary[NSArray.productIdentifier];
我以爲Array只有元素(objectAtIndex
)?爲什麼有一個點(。)和productIdentifier?
而且
這與'IAPProduct * product = [_products objectForKey:[skProduct productIdentifier]];' – rmaddy
謝謝。 objectForkey有什麼價值?如果它被當作字典對待,那麼爲什麼它在這裏被當作一個數組來處理:IAPProduct * product = _products [invalidProductIdentifier]; < - 這裏的對象和價值是什麼? – user1107173
沒有陣列。這是現代的Objective-C語法。如果'_products'是一個'NSDictionary',那麼方括號中的值就是字典中的一個鍵。如果'_product'是'NSArray',那麼方括號中的值必須是有效的數組索引。 – rmaddy