Swift 3 のコードへのアクセスエラー
2023-10-19 12:23:55
質問
Xcode 8 beta 4 の新機能。
NSError
がブリッジされ、Swift の
Error
プロトコルタイプにブリッジされています。これは、StoreKit が失敗した
SKPaymentTransaction
s. ユーザーにエラーメッセージを表示するかどうか判断するために、トランザクションがキャンセルされたためにエラーが発生したのではないことを確認する必要があります。これを行うには、エラーの
code
. しかし
Error
の代わりに
NSError
がない場合は
code
が定義されています。のエラーコードを適切に取得する方法がわかりません。
Error
.
これは、以前のバージョンのSwift 3で動作していました。
func failedTransaction(_ transaction: SKPaymentTransaction) {
if let transactionError = transaction.error {
if transactionError.code != SKErrorCode.paymentCancelled.rawValue {
//show error to user
}
}
...
}
では、その
error
は
Error
ではなく
NSError
,
code
はメンバーではありません。
どのように解決するのですか?
へのキャスト
SKError
は、xCode 8とSwift 3で動作しているようです...。
guard let error = transaction.error as? SKError else {return}
switch error.code { // https://developer.apple.com/reference/storekit/skerror.code
case .unknown: break
case .paymentCancelled: break
case .clientInvalid: break
case .paymentInvalid: break
case .paymentNotAllowed: break
case .cloudServiceNetworkConnectionFailed: break
case .cloudServicePermissionDenied: break
case .storeProductNotAvailable: break
}
は必要ありません。
rawValue
.
関連
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftの@selector()?
-
[解決済み】コンパイラーエラー。Objective-C のセレクタを持つメソッドは、同じ Objective-C セレクタを持つ以前の宣言と競合しています。
-
[解決済み] Swift 2: 呼び出しは投げることができるが、'try'が付いておらず、エラーは処理されない
-
[解決済み] Objective-CのクラスでSwiftのプロトコルをインポートする
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?
-
[解決済み] Swiftで乱数を生成する
-
[解決済み] Swift で CGFloat を切り上げる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swift Error fatal error: Optional value のアンラップ中に予期せず nil を発見した。
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?
-
[解決済み] 小数点以下2桁に切り上げ
-
[解決済み] SHA256 in swift
-
[解決済み] ラウンドトリップスウィフト番号の種類は、データとの間で
-
[解決済み] Swiftで失敗しないイニシャライザーを実装するためのベストプラクティス
-
[解決済み] SwiftのAnyObjectとAny
-
[解決済み] あるプロトコルを特定のクラスにのみ適用することを要求する方法