問題があります。 SKProductsRequestデリゲートメソッドが呼び出されることはありません。これは以前に尋ねられましたが、答えはありませんでした。 StoreKit delegate functions are not getting calledStoreKitデリゲートメソッドが呼び出されない
私は英語のネイティブスピーカーではないよ、私は時々面白い聞こえるかもしれない:P :(
私はiOSアプリでStoreKitを実装するには、私はすべてのStoreKitの通信を処理するクラスを作った。これはあります。コード:私は私のAPPDで[店舗requestProducts]実行したときに
@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
不思議な私のアプリデリゲートでインスタンスを作成し、このコードは、[OK]を動作しますidFinishLaunching:メソッド。
- (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;
}
}
私は何が悪いのか分かりません。ほとんどすべてを試してもエラーはなく、クラッシュはありませんが、デリゲートは決して呼び出されません。どんな助けでも大歓迎です。
ありがとうございます!
SKProductsRequestDelegate
修正のおめでとう!あなたができるときは、あなたの問題が解決され、あなたの解決策から学ぶことができるように他の人に気づくように、あなたの答えを「受け入れ」とマークしてください。乾杯〜 –
私は同意する必要はありません、より多くの不要なコード行を保持する必要はありません。 – spybart
最後に動作します。それは私のinAppクラス(別のクラスで呼び出される)を合成する上記の技術を追加した後に動作していませんでした。すべての作品は、もはやクラッシュと代議員が呼び出す:) – Muzammil