Ich habe ein Problem. Delegierte Methoden von SKProductsRequest werden niemals aufgerufen. Dies wurde zuvor gefragt, aber es gab keine Antworten. StoreKit delegate functions are not getting calledStoreKit Delegate-Methode wird nicht aufgerufen
Ich bin nicht Englisch als Mutter Lautsprecher, ich manchmal komisch klingen mag:.. P :(
ich StoreKit in meinem iOS-App implementieren möchte ich eine Klasse gemacht, um alle StoreKit Kommunikation zu behandeln Dies ist der Code:
@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);
}
I
@interface VRAppDelegate
@property (strong, nonatomic) VRStoreController *store;
@end
Seltsamer eine Instanz in meine app-Delegaten erstellt, dieser Code funktioniert ok, wenn ich [store requestProducts] in meinem APPD laufen idFinishLaunching: Methode.
- (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;
}
Aber wenn ich den Code in Einstellungen Tableview ausführen: DidSelectRowAtIndexPath: die delegierte Methode wird nie aufgerufen.
//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;
}
}
Ich weiß nicht, was mache ich schlecht. Fast alles versucht und keine Fehler, keine Abstürze, aber der Delegierte wird nie aufgerufen. Jede Hilfe wäre sehr willkommen.
Vielen Dank im Voraus!
Herzlichen Glückwunsch zum Fix! Wenn Sie dazu in der Lage sind, stellen Sie bitte sicher, dass Sie Ihre Antwort als "akzeptiert" markieren, damit andere bemerken, dass Ihr Problem gelöst wurde und Sie von Ihrer Lösung lernen können. Cheers ~ –
Ich stimme zu, es sollte nicht beibehalten werden, nur mehr unnötige Zeilen Code. – spybart
Endlich funktioniert es. Es funktionierte nicht nach der oben genannten Technik, dann synthetisiere ich auch meine inApp-Klasse (die in einer anderen Klasse aufgerufen wird). Alles funktioniert, keine Abstürze mehr und Delegierte rufen an :) – Muzammil