Делегаты SKProductRequest, не входящие в приложение, не звонили
Я знаю, что вопрос задавался так много раз. Я посмотрел все это, но я не смог решить эту проблему.
я добавил Storekit framework
и создал и класс InAppPurchaseManager типа NSObject
,
Я делаю случай, когда мне нужно сделать запрос продукта.
InAppPurchaseManager *inApp = [[InAppPurchaseManager alloc] init];
[inApp loadStore:@"TestProduct"];
Я сделал свойство класса SKProductsRequest
,
@property (retain, nonatomic) SKProductsRequest *productsRequest;
// метод loadStore
- (void)loadStore:(NSString *)_productID
{
productID = _productID;
// restarts any purchases if they were interrupted last time the app was open
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
// get the product description (defined in early sections)
[self requestProUpgradeProductData];
}
- (void)requestProUpgradeProductData
{
NSSet *productIdentifiers = [NSSet setWithObject:productID];
self.productsRequest = [[SKProductsRequest alloc]
initWithProductIdentifiers:productIdentifiers];
self.productsRequest.delegate = self;
[self.productsRequest start];
}
// Делегаты
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:
(SKProductsResponse *)response
{
//never being called
}
- (void)requestDidFinish:(SKRequest *)request
{
//never being called
}
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
{
//never being called
}
Мой интерфейс выглядит так
@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate, SKPaymentTransactionObserver, SKRequestDelegate>
Пожалуйста, предложите, как я могу решить эту проблему.
Изменить: как это
[self.productsRequest start];
выполняет это входит в
-(void) dealloc {
}
1 ответ
Решение
Эта проблема исправлена путем создания свойства InAppPurchaseManager.