Realm错误整理

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

代码部分:
<code>
ManagementCamViewController *manager = [[ManagementCamViewController alloc] init];
manager.ipcamModel = curNode.nodeData;
//curNode.nodeData; [curNode.nodeData copy];
[self.navigationController pushViewController:manager animated:YES];
</code>
当我从一个页面 push到另一个页面时 发现copy 时数据不对 改成直接赋值则没有问题
(这个奇怪的问题 还没解决 ) 本来用的copy没问题
然而改为直接赋值则报上面的错误。

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

解决:
<code>
[[RLMRealm defaultRealm] beginWriteTransaction];
_ipcamModel.cacheImgPath = spath;
[[RLMRealm defaultRealm] commitWriteTransaction];
</code>
没用通过写的单例 直接这么保存了下 突然发现这玩意 还真的挺好用

你可能会想 诶 这么做不做阻塞线程么 OK 你可以下面这种
<code>
RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
_ipcamModel.cacheImgPath = spath;
}];
</code>
还有一次报这个错是因为 在外面套了一个GCD去掉就好了
dispatch_barrier_async(_concurrentQueue, ^{});

三.关于用RealmBrowser打开Realm数据库

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

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

推荐阅读更多精彩内容

  • 前言 由于最近项目中在用Realm,所以把自己实践过程中的一些心得总结分享一下。 Realm是由Y Combina...
    一缕殇流化隐半边冰霜阅读 73,570评论 213 517
  • 跨平台:现在很多应用都是要兼顾iOS和Android两个平台同时开发。如果两个平台都能使用相同的数据库,那就不用考...
    CoderZS阅读 2,558评论 2 16
  • Realm是由Y Combinator公司孵化出来的一款可以用于iOS(同样适用于Swift&Objective-...
    小歪子go阅读 2,289评论 6 9
  • 这篇直接搬了一份官方文档过来看的 由于之前没用markdown搞的乱七八糟的 所以重新做了一份 后面看到官网...
    石丘阅读 18,060评论 14 24
  • 秋天最后的一片银杏,在这个寒起的冬日,点点飘落。每年的这个日子里总想抓住秋的最后一刻,记录片暇。去年的那个场景,满...
    耘儿910阅读 471评论 0 5