Ответ 1
Попробуйте реализовать также метод - (void)request:(SKRequest *)request didFailWithError:(NSError *)error
- могут быть некоторые ошибки при обработке ваших запросов.
Я реализую при покупке приложения. Я отправляю запрос в магазин Apple через
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:
[NSSet setWithObjects: featureAId,featureBId,nil]]; // add any other product here
request.delegate = self;
[request start];
}
метод ответа
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
[purchasableObjects addObjectsFromArray:response.products];
}
не звонит вообще. только однажды он вызвал из десяти попыток, которые я пробовал.
любая идея относительно этого..? заранее спасибо
Попробуйте реализовать также метод - (void)request:(SKRequest *)request didFailWithError:(NSError *)error
- могут быть некоторые ошибки при обработке ваших запросов.
У меня была та же проблема, но в моем случае причина заключалась в том, что я использовал Автоматический подсчет ссылок, и я забыл сохранить запрос.
Мой код был похож:
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:ProductIdentifier]];
request.delegate = self;
[request start];
}
Но делегировать productsRequest: didReceiveResponse: никогда не вызывался.
Исправление:
@property (strong, nonatomic) SKProductsRequest *request;
- (void) requestProductData
{
self.request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:ProductIdentifier]];
self.request.delegate = self;
[self.request start];
// you can nil request property in request:didFailWithError: and requestDidFinish:
}
У меня была та же проблема. Я создал вспомогательный класс для обработки IAP и проверки продуктов. Наконец, я обнаружил, что экземпляр класса, который я создал, был выпущен до того, как ответ вернулся, поэтому методы делегата никогда не вызывались, потому что их больше не было.
Я решил свою проблему, сохранив экземпляр класса-помощника в классе, который я назвал его использованием @proprty (сильным, неатомным)...
Если вы не используете вспомогательный класс и не кодируете его в существующий класс, то ответ выше будет работать, сохраняя ваш SKProductRequest.
У меня была аналогичная проблема (ошибка: не удается подключиться к iTunes Store). После обновления iTunes Beta до последней версии он снова начал работать.