Получить SKProduct от SKProductsRequest
Привет! Я пытаюсь добавить покупку в приложение в свое приложение, но каждый раз, когда я вызываю метод "buy", я получаю сообщение об ошибке "Неверный идентификатор продукта: (null)". Как я могу вызвать метод, не получая эти ошибки / Как я могу сделать продукт внутри метода покупки таким же, как продукт в ответе?
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *productIdentifiers = @[@"product1"];
}
- (void)fetchProducts {
NSSet *identifierSet = [NSSet setWithArray:productIdentifier];
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: identifierSet];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"Inside productsRequest");
for(SKProduct *product in response.products) {
NSLog(@"%@", product);
}
}
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error {
NSLog(@"Error %@", error);
}
-(void)unlock {
SKProduct *product = [[SKProduct alloc] init];
[self buy:product];
}
- (void)buy:(SKProduct *)product {
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for(SKPaymentTransaction *tx in transactions) {
switch(tx.transactionState) {
case SKPaymentTransactionStatePurchased:
NSLog(@"Unlock %@", tx.payment.productIdentifier);
[[SKPaymentQueue defaultQueue] finishTransaction:tx];
break;
case SKPaymentTransactionStateFailed:
NSLog(@"Error: %@", tx.error);
[[SKPaymentQueue defaultQueue] finishTransaction:tx];
break;
case SKPaymentTransactionStateRestored:
NSLog(@"Unlock %@", tx.originalTransaction.payment.productIdentifier);
[[SKPaymentQueue defaultQueue] finishTransaction:tx];
break;
}
}
}