迁移你的模型文件。 你可以可容易的转换管理对象的子类到Realm。Realm为了让类标头看起来更小些,在内部管理属性关键词(你不必自己指定它们)。你可以安全的去掉所有NSNumber的东西,因为Realm支持简单的数值类型(NSInteger和CGFloat)。但是Realm也有一些限制。不像Core Data的数据对象使用NSManagedObjectID来确定对象的唯一性,Realm把这个交给开发人员来管理。第二,当前版本的Realm还不能处理含有nil值的对象属性。这是一个小问题,但是在下一个版本里开发人员有望解决这个问题。
迁移你的写操作。Realm的保存操作和Core Data 有一点不相同的地方,你得了解这个问题,一旦把Realm数据对象添加到Realm对象,就不能被修改了。这确保了数据在不同线程下的一致性。为了能够修改属性。这些被保存的对象必须在’写’的事务里。
迁移你的查询, 让你的查询,在需要时可以检索到你的数据。在Core Data里,为了取一个文件,你需要写将近10行的代码。但是在Realm里仅仅需要一行就够了。
迁移用户在Core Data里产生数据,你可以在应用里重新连接Core Data框架,然后用它去数据,传递给Realm。对于那些可替代的用户数据有一个简单的解决方案就是删除所有的Core Data 保存文件,下次应用启动的时候重新开始。
关键是要在使用最好的技术和工具的时候保持你设计的流程简单。一旦你花费时间在建立了你的行之有效的流程,就不要让“新的吸引力”带你走。让“新的”成为你的流程的一部分,然后让时间决定是否值得。
英文原文:iOS Database Comparison: SQLLite vs. Core Data vs. Realm