これは、次のエラーが発生しているswitchステートメントです。
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;
}
最後の2つのケースに加えてデフォルトでは、次のエラーが表示されます。
Switchステートメントからこのcaseラベルにジャンプできません
私は何度も何度もswitchステートメントを使用しました。これは私がこれを見たのは初めてです。コードはチュートリアルからコピーされました( here )。これをアプリに適合させようとしています。これに関する助けに感謝します。 SD
CはSwiftではありません。 this のように、すべてのケースの内部に中括弧を使用してswitch
ステートメントを構造化すると、より幸せになります。
switch (tag) {
case 1: { // curly braces
// ...
break;
}
case 2: { // curly braces
// ...
break;
}
case 3: { // curly braces
// ...
break;
}
}
余分なレベルの中かっこを使用すると、他の方法ではできないことを実行できます。