У меня проблема. Методы делегатов SKProductsRequest никогда не вызываются. об этом раньше спрашивали, но ответов не было. Функции делегата StoreKit не вызываются
Я не являюсь носителем английского языка, иногда я могу звучать смешно: P: (
Я хочу реализовать StoreKit в своем приложении для iOS. Я сделал класс для обработки всех сообщений StoreKit. Это код:
@implementation VRStoreController
- (void) requestProducts
{
SKProductsRequest *request= [[SKProductsRequest alloc]
initWithProductIdentifiers:
[NSSet setWithObject: @"myProductID"]];
request.delegate = self;
[request start];
[[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:YES];
}
- (void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"F7U12");
[[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
NSArray *myProducts = response.products;
NSLog(@"%@", myProducts);
}
Я создал экземпляр в моем делегате приложения
@interface VRAppDelegate
@property (strong, nonatomic) VRStoreController *store;
@end
Странно, но этот код работает нормально, когда я запускаю [store requestProducts] в моем appDidFinishLaunching: метод.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//app initialization...
self.store = [[VRStoreController alloc]init];
[store requestProducts]; //This works ok, delegate method gets called.
return YES;
}
Но когда я запускаю код в настройках tableView: didSelectRowAtIndexPath: метод делегата никогда не вызывается.
//VRAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//app initialization...
self.store = [[VRStoreController alloc]init];//initialize store
return YES;
}
//VRSettingsViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section) {
//case 0, 1...
case 2:
{
VRStoreController *store = ((VRAppDelegate *)[UIApplication sharedApplication].delegate).store;
[store requestProducts]; //calls SKProductRequest start, but never calls delegate method.
NSLog(@"GO PRO");
}
default:
break;
}
}
Я не знаю, что я делаю плохо. Перепробовал практически все и без ошибок, без сбоев, но делегат никогда не вызывали Любая помощь будет принята с благодарностью.
Заранее большое спасибо!