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

时间:2021-6-4 作者:qvyue

接手了一个用纯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! = try! Realm().objects(UserBaseInfoModel.self)
        return UserInfo.first!
    }
}

持续菜坑中。。。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。