

RealmSwiftの使い方について質問です。

**実行環境**  
\- OS El Capitan 10.11.1  
\- Xcode 7.1  
\- CocoaPods 0.96.2

以下のオブジェクトにデータを入れたいのですがどうしたらいいですか？

[code]

    class User: RLMObject {
        dynamic var id = 0
        dynamic var name = ""
    
        override class func primaryKey()->String {
            return "id"
        }
    }
    
[/code]

[code]

    let user = User()
    user.id = "1"
    user.name = "aaaaa"
    
    do {
        let realm = try! RLMRealm.defaultRealm()
        realm.beginWriteTransaction()
        realm.addObject(user)
        realm.commitWriteTransaction() ⇦このメソッドが見当たらなくエラーになります。
        ...
    
[/code]


CC BY-SA 3.0
2015-10-29T20:12:53.210
18223
2016-07-26T13:00:55.573
2016-07-26T13:00:55.573
5519
13030
question
swift realm
RealmSwiftでcommitWriteTransaction()が見つからないというコンパイルエラー


メソッドが見つからないのではなく、`try`が抜けているだけだと思います。`commitWriteTransaction()`メソッドは失敗する可能性があるので、`throws`が定義されているので、`try`を付けて呼び出す必要があります。

[code]

    realm.beginWriteTransaction()
    realm.addObject(user)
    try realm.commitWriteTransaction()
    
[/code]

  
  
余談ですが、iOS 8以上を対象にしているなら、RealmSwiftを利用する方が、Swiftらしく型安全でシンプルなコードになります。

<https://realm.io/jp/docs/swift/latest/>


CC BY-SA 3.0
2015-10-29T21:57:30.590
18224
2015-10-29T21:57:30.590
5519
18223
answer