to jest switch, że ja otrzymuję błędy na:Co jest tego przyczyną: Nie można skakać z instrukcji switch do tego przypadku etykiety
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchasing:
// show wait view here
statusLabel.text = @"Processing...";
break;
case SKPaymentTransactionStatePurchased:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
// remove wait view and unlock iClooud Syncing
statusLabel.text = @"Done!";
NSError *error = nil;
[SFHFKeychainUtils storeUsername:@"IAPNoob01" andPassword:@"whatever" forServiceName: kStoredData updateExisting:YES error:&error];
// apply purchase action - hide lock overlay and
[oStockLock setBackgroundImage:nil forState:UIControlStateNormal];
// do other thing to enable the features
break;
case SKPaymentTransactionStateRestored:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
// remove wait view here
statusLabel.text = @"";
break;
case SKPaymentTransactionStateFailed:
if (transaction.error.code != SKErrorPaymentCancelled) {
NSLog(@"Error payment cancelled");
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
// remove wait view here
statusLabel.text = @"Purchase Error!";
break;
default:
break;
}
dwóch ostatnich przypadkach, plus domyślnie dają mi następujące błąd:
Cannot jump from switch statement to this case label
Użyłem instrukcji switcha wiele, wiele razy; po raz pierwszy widziałem to. Kod został skopiowany z samouczka (here), który staram się dostosować do mojej aplikacji. Doceniłbym pomoc w tej sprawie. SD
Czy mógłbyś spróbować wstawić wnętrza wszystkich bloków 'case' w nawiasy klamrowe i zobaczyć, czy to coś zmieni? W ten sposób: http://www.apeth.com/iOSBook/ch01.html#EXswitch – matt
Nie można zadeklarować 'NSError * error = nil;' wewnątrz obudowy bez zamykania go w bloku (nawiasy klamrowe) – Wain