Realm数据库的写入与更新 数据

接手了一个用纯swift3.0的项目,前iOS开发了不到一个月走了。留了一堆坑,填坑中

写入:


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.当然,这么一个还算比较新的工具说是完美的肯定是不可能,我在使用中也在经常地骂娘,虽然后来发现好多是使用姿势不对23333

2..Realm是C++实现的,所以看着一堆.mm的源码,对我来说基本不会产生去阅读.的想

注意点:

1.RealmObject自带线程保护功能,只能在创建它的线程中访问,在子线程中不能访问。

2.如果Realm关闭,所有查询得到的RealmObject都不能使用了。

3.如果想在Realm.close()之后继续操作查询得到的对象,只能复制一份数据传出来。

4.如果直接修改或删除query得到的数据,必须在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!
    }
}

持续菜坑中。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容