接手了一個用純swift3.0的項目纪隙,前iOS開發(fā)了不到一個月走了摘能。留了一堆坑沪饺,填坑中
寫入:
if let transformModel =Mapper().map(JSONObject: data) {
let realm =try! Realm()
try! realm.write{
realm.add(transformModel, update:true)
}
println(transformModel)
}
更新:
let realm =try!Realm()
letUserInfo = realm.objects(UserBaseInfoModel.self).first
try! realm.write{
UserInfo?.name=nameLable.text!
}
遇到的一些坑或者不爽的地方
1.當(dāng)然,這么一個還算比較新的工具說是完美的肯定是不可能,我在使用中也在經(jīng)常地罵娘,雖然后來發(fā)現(xiàn)好多是使用姿勢不對23333
2..Realm是C++實現(xiàn)的,所以看著一堆.mm的源碼,對我來說基本不會產(chǎn)生去閱讀.的想
注意點:
1.RealmObject自帶線程保護功能者甲,只能在創(chuàng)建它的線程中訪問,在子線程中不能訪問验庙。
2.如果Realm關(guān)閉顶吮,所有查詢得到的RealmObject都不能使用了。
3.如果想在Realm.close()之后繼續(xù)操作查詢得到的對象粪薛,只能復(fù)制一份數(shù)據(jù)傳出來悴了。
4.如果直接修改或刪除query得到的數(shù)據(jù),必須在transaction中完成...
5.讀取之前要判斷是否為空
//用戶信息:
func getUserInfo() -> UserBaseInfoModel{
if try! Realm().isEmpty {
let UserInfo = UserBaseInfoModel()
return UserInfo
}else{
let UserInfo: Results<UserBaseInfoModel>! = try! Realm().objects(UserBaseInfoModel.self)
return UserInfo.first!
}
}
持續(xù)菜坑中。湃交。熟空。