我将 Xcode 9.2 和 swift 4 用于 IOS 应用程序 一切都很好,但是当我添加 Realm [单击按钮后保存到数据库],然后单击按钮时,应用程序会崩溃并显示此消息
SIGNAL SIGABRT
当我用一个简单的方法更改 Realm 方法时
print("clicked")
它有效
<小时/>我使用这条 pod 线添加库
pod 'RealmSwift'
我有下面的代码
floaty.addItem("Share", icon: UIImage(named: "share-variant")! , handler:{ item in
self.shareTxt()
})
floaty.addItem("Save", icon: UIImage(named: "content-save")! , handler:{ item in
self.saveToDB()
})
<小时/>
func saveToDB() {
let realm = try! Realm()
realm.beginWrite()
realm.create(News.self, value: [SingleItem?.id])
try! realm.commitWrite()
}
<小时/>
class News: Object {
@objc dynamic var new_id = ""
}
最佳答案
首先,将属性 new_id
作为主键:
class News: Object {
@objc dynamic var new_id = ""
override static func primaryKey() -> String? {
return "new_id"
}
}
然后,添加或更新模型:
func saveToDB() {
if let newId = SingleItem?.id {
let realm = try! Realm()
let news = realm.objects(News.self).filter("new_id == \(newId)").first
if news != nil {
try! realm.write {
//optional, updating some fields...
//like: news.title = "some title"
}
}
else{
let news = News(value: ["new_id", newId])
try! realm.write {
realm.add(news)
}
}
}
}
关于ios - Realm 无法在 Xcode 9.2 上使用 SIGNAL SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48442240/