LoginSignup
52
52

More than 5 years have passed since last update.

Swift2.0でのRealmの使い方

Last updated at Posted at 2015-09-18

Swift2.0対応のRealmオブジェクトのインスタンス化するときの仕様が変わったようです。
バージョンはRealm0.95.0です。

公式サイトでは、以下のコードがサンプルにありますが、エラーがでます。
"Call can throw, but it is not marked with 'try' and the error is not handled"

let realm = Realm() // ここでエラーがでます。

realm.write {
    realm.add(mydog)
}

こちらのstackoverflowで回答がありました。

RealmSwiftのAPIも標準のエラー処理の方法に沿うように、Swift 2からはAPIが変更されていますので、それに合わせて変更する必要があります。

具体的には、Realmをインスタンス化はエラーが起こる可能性(書き込み権限が無い、パスが間違っている、など)のある処理ですので、エラー処理が必要になります。

do {
  let realm = try Realm()
  realm.write { realm.add(myDog) }
}
catch {
  print("Error...")
}

または、エラー処理が無用な場合は、こちらも使えるようです。

let realm = try! Realm()

realm.write {
    realm.add(myDog)
}
52
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
52