iOS中 Realm错误总结整理 韩俊强的博客

一.错误信息:Attempting to modify object outside of a write transaction - call beginWriteTransaction on an RLMRealm instance first.企图在 写入事务 外修改对象 应该先在RLMRealm实例对象前 调用beginWriteTransaction

代码部分:

//[[RLMRealm defaultRealm] beginWriteTransaction];

_ipcamModel.cacheImgPath = spath;

[[RLMRealm defaultRealm] commitWriteTransaction];</span>

当我从一个页面 push到另一个页面时 发现copy 时数据不对 改成直接赋值则没有问题
(这个奇怪的问题 还没解决 ) 本来用的copy没问题
然而改为直接赋值则报上面的错误。

二.错误信息:Realm accessed from incorrect thread Realm从错误的线程存取

解决:

<pre name="code" class="objc">//ManagementCamViewController *manager = [[ManagementCamViewController alloc] init];

manager.ipcamModel = curNode.nodeData;

//curNode.nodeData;
 [curNode.nodeData copy];

[self.navigationController pushViewController:manager animated:YES];</span>

 

没用通过写的单例 直接这么保存了下 突然发现这玩意 还真的挺好用你可能会想 诶 这么做不做阻塞线程么 OK 你可以下面这种

//RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{

_ipcamModel.cacheImgPath = spath;

}];</span>

还有一次报这个错是因为 在外面套了一个GCD去掉就好了

//dispatch_barrier_async(_concurrentQueue, ^{});</span>

Realm数据库的时候是不能在模拟器运行的时候用RealmBrowser打开的,就像打开了就不能在运行模拟器中运行该程序
这个愚蠢的错误 不会只有我自己犯过吧

iOS开发者交流群:446310206


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩俊强

奖励一杯咖啡☕️

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值