Dieser eine switch-Anweisung ist, dass ich Fehler immer bin auf:Was verursacht diese: Kann nicht auf diesen Fall Label aus switch-Anweisung springen
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;
}
den letzten beiden Fällen, plus der Standard, geben Sie mir folgende Fehler:
Cannot jump from switch statement to this case label
Ich habe die switch-Anweisung viele, viele Male verwendet; Das ist das erste Mal, dass ich das gesehen habe. Der Code wurde aus einem Tutorial (here) kopiert, das ich für meine App anpassen möchte. Würde die Hilfe bei diesem einen schätzen. SD
Könnten Sie bitte versuchen, das Innere aller 'case' Blöcke in geschweifte Klammern zu setzen und zu sehen, ob sich das ändert? Wie folgt: http://www.apeth.com/iOSBook/ch01.html#EXswitch – matt
Sie können 'NSError * error = nil;' im Gehäuse nicht deklarieren, ohne es in einen Block (geschweifte Klammern) einzuschließen. – Wain