データベースの行を削除しようとすると、realm.deleteObject
の行で「'RLMResults' is not convertible to 'RLMObject'
」というエラーが表示されてしまいます。色々調べてみてもあまりRealm
の使い方が載ったサイトを見つけることができません。初歩的なことだと思いますが、どうすればデータを削除することができるでしょうか?
また、テーブルを丸ごと削除するにはどうすればいいでしょうか?
どなたか分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。
import Foundation
class Word: RLMObject {
var id = 0
var speech = ""
var word = ""
override class func primaryKey() -> String {
return "id"
}
}
データの削除処理
let realm = RLMRealm.defaultRealm()
realm.transactionWithBlock({ () -> Void in
realm.deleteObject(Word.objectsWhere("id == 1"))
})
---追記---
「deleteObject
」を「deleteObjects
」に変えて試したところエラーがなくなりコンパイルができるようになりました。しかし、いざプログラムを実行してみるとプログラムが動かなくなってしまいました。その後色々試してみてWord.objectsWhere("speech == A")
とするとプログラムが正常に動き、データも削除することができました。これはどういうことなのでしょうか?なぜidを指定して削除できないのでしょうか?
---追記---
import Foundation
class Word: RLMObject {
dynamic var id = 0
dynamic var speech = ""
dynamic var word = ""
override class func primaryKey() -> String {
return "id"
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let realm = RLMRealm.defaultRealm()
realm.transactionWithBlock({ () -> Void in
realm.deleteObjects(Word.allObjects())
})
}