如何降低Realm数据库的崩溃
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Realm的崩溃,猝不及防,不仅仅是Realm,任何数据库导致的奔溃总是个难题,总有那么零星几个让人没有头绪的bug。 本文提供了一个思路来解决Realm数据库崩溃问题 代码部分见重点内容,Java等其他平台也可参考。 谨记以下几点: Realm的数据写入是同步阻塞的,但是读取不会阻塞 Realm托管的对象是不可以跨线程的,即不同线程是不可以修改彼此的对象的 Realm托管的对象的任何修改必须是在realm.write{} 中完成的 Realm 采用了 零拷贝 架构。 尽量少使用写入事件少量事件,可以尝试批量写入更多数据 将写入操作载入到专门的线程中执行。 推迟初始化任何用到 Realm API 属性的类型,直到应用完成 Realm 配置。否则会崩溃。 官方明确的限制: 类名称的长度最大只能存储 57 个 UTF8 字符。 属性名称的长度最大只能支持 63 个 UTF8 字符。 Data 和 String 属性不能保存超过 16 MB 大小的数据 每个单独的 Realm 文件大小无法超过应用在 iOS 系统中所被允许使用的内存量——这个量对于每个设备而言都是不同的,并且还取决于当时内存空间的碎片化情况(关于此问题有一个相关的 Radar:rdar://17119975)