Używam w mojej aplikacji SKStoreProductViewController
. Wyświetla się poprawnie, ale z kilkuminutowym opóźnieniem, co spowalnia działanie użytkownika.SKStoreProductViewController pojawia się z opóźnieniem
Czy jest coś nie tak w moim kodzie? Czy powinienem poinformować użytkownika, że VC ładuje się? Bo teraz można uwierzyć, że nic się nie dzieje po naciśnięciu przycisku (który wywołuje następujący kod):
-(void)launchApp:(id)sender {
// Recall on main thread if necessary
if (![NSThread isMainThread]) {
[self performSelectorOnMainThread:@selector(launchApp:)
withObject:sender
waitUntilDone:NO];
return;
}
// Initialize Product View Controller
SKStoreProductViewController *storeProductViewController = [[SKStoreProductViewController alloc] init];
// Configure View Controller
[storeProductViewController setDelegate:self];
[storeProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : @"*********"}
completionBlock:^(BOOL result, NSError *error) {
if (error) {
NSLog(@"Error %@ with User Info %@.", error, [error userInfo]);
} else {
// Present Store Product View Controller
[self presentViewController:storeProductViewController animated:YES completion:nil];
}
}];
}
Dzięki, zapomniałem przez chwilę o logice bloków. Użyłem pierwszego rozwiązania i nic nie szkodzi, ponieważ VC ma własną etykietę "loading". Dzięki ! – rdurand
@Matthias - jakikolwiek pomysł, jeśli możliwe jest ustanowienie limitu czasu dla połączenia loadProductWithParameters? – runamok
Jedna uwaga - Apple mówi, że powinieneś przekazać swój identyfikator sklepu jako numer NSN, a nie NSString. – Zack