码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-08-01 19:43:38      阅读:604      评论:0      收藏:0      [点我收藏+]

标签:

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

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

代码部分:

//ManagementCamViewController *manager = [[ManagementCamViewController alloc] init];
?manager.ipcamModel = curNode.nodeData;?
//curNode.nodeData;
 [curNode.nodeData copy];?
[self.navigationController pushViewController:manager animated:YES];</span>

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

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

解决:

//[[RLMRealm defaultRealm] beginWriteTransaction];
?_ipcamModel.cacheImgPath = spath;
?[[RLMRealm defaultRealm] commitWriteTransaction];</span>


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

//RLMRealm *realm = [RLMRealm defaultRealm];?
[realm transactionWithBlock:^{
?_ipcamModel.cacheImgPath = spath;
?}];</span>

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

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

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

技术分享

iOS开发者交流QQ群: 446310206


每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

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

标签:

原文地址:http://blog.csdn.net/qq_31810357/article/details/52088268

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!