[解決済み] Swift 2: 呼び出しは投げることができるが、'try'が付いておらず、エラーは処理されない
2022-04-22 06:51:37
質問
Xcode 7 betaをインストールし、SwiftコードをSwift 2に変換した後、コードにいくつかの問題が発生し、それを解決することができません。私はSwift 2が新しいことを知っているので、私は検索し、それについて何もないので、私は質問を書くべきであると考えています。
以下はそのエラーです。
Callは投げることができますが、'try'が付いていないため、エラーは 処理される
コードです。
func deleteAccountDetail(){
let entityDescription = NSEntityDescription.entityForName("AccountDetail", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
//The Line Below is where i expect the error
let fetchedEntities = self.Context!.executeFetchRequest(request) as! [AccountDetail]
for entity in fetchedEntities {
self.Context!.deleteObject(entity)
}
do {
try self.Context!.save()
} catch _ {
}
}
スナップショット
解決方法は?
の場合と同じように、エラーをキャッチする必要があります。
save()
の呼び出しで、ここでは複数のエラーを処理しているので
try
のように、1つのdo-catchブロックの中で、複数の呼び出しを順次行っています。
func deleteAccountDetail() {
let entityDescription = NSEntityDescription.entityForName("AccountDetail", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
do {
let fetchedEntities = try self.Context!.executeFetchRequest(request) as! [AccountDetail]
for entity in fetchedEntities {
self.Context!.deleteObject(entity)
}
try self.Context!.save()
} catch {
print(error)
}
}
また、@bames53 が下のコメントで指摘しているように、エラーがスローされた箇所はキャッチしない方が良い場合が多いようです。その場合は、そのメソッドを
throws
では
try
を使ってメソッドを呼び出すことができます。例えば
func deleteAccountDetail() throws {
let entityDescription = NSEntityDescription.entityForName("AccountDetail", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
let fetchedEntities = try Context.executeFetchRequest(request) as! [AccountDetail]
for entity in fetchedEntities {
self.Context!.deleteObject(entity)
}
try self.Context!.save()
}
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
iOS classic error Undefined symbols for architecture XXX:
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UIDevice uniqueIdentifierは非推奨 - どうしたらいいの?
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。