Plain Core Data vs Core Data + Magical Record

Posted

技术标签:

【中文标题】Plain Core Data vs Core Data + Magical Record【英文标题】: 【发布时间】:2015-01-20 13:13:31 【问题描述】:

我正在计划一种为 ios (swift) 应用保存数据的方法。从阅读一堆关于 iOS 上的持久性的文章来看,Core Data 似乎是一种非常受支持的方式来做到这一点。围绕它构建了一堆库/工具,一个流行的组合似乎是 MoGenerator + MagicalRecord + Core Data。

由于 MagicalRecord 提供了某种 Active Record 功能,因此意外破坏东西似乎很“容易”。有人告诉我,用户可能必须重新安装他们的应用才能从此类故障中恢复。

所以问题:仅使用普通核心数据而不是 MoGenerator + MagicalRecord + 核心数据是否可行?还是这个级别太低了,只能为大团队使用原始核心数据?可以将优缺点与普通 SQL 与 ORM 进行比较吗?

【问题讨论】:

在 MR & mo 之前有一段时间,每个人都必须使用普通 CD,附加工具很方便,但仅此而已。 同意 Wain,Magical Record 删除了很多样板代码,它确实很棒,但它不会为您解决任何问题。我个人在小型项目中使用它 顺便说一句,您还可以将 Core Data 与 MoGenerator w/o MR 一起使用。 使用纯核心数据!为自己构建一个不错的“核心数据引擎”并在它之上构建!在您了解正在发生的所有事情之前,开始有点困难,但这是非常值得的! 很酷,谢谢! (看起来很像答案;)) 【参考方案1】:

我强烈建议不要使用 MR 或 Mogenerator,直到您对 Core Data 有足够的了解并知道为什么要使用它们。

如果您不了解它在幕后所做的事情,Magical Record 看起来真的很神奇。并且在没有很好地理解基本框架的情况下使用 Core Data 会引发你永远无法深究的问题。无论您使用什么工具,都需要了解核心数据陷阱。

与 MR 相比,CD 并不是真正的低级:但更冗长(MR 为您节省了很多样板文件)。不过,我建议您花点时间阅读一本体面的书,例如 Tim Roadley 的Learning Core Data for iOS。当您完成这些工作后,您可能会发现 - 正如 codeFi 所建议的那样 - 您已经为自己构建了一个核心数据引擎,可以为您完成足够的工作,因此无需添加 Magical Record。

使用 MR 的另一个问题是稳定版本 2.2 已经使用了两年。 V2.3 仍处于测试阶段,未来的重点是 3.0。如果您使用稳定版本并发现问题,它们将不会得到修复。如果/当 v3.0 准备好时,界面可能会完全不同。

【讨论】:

以上是关于Plain Core Data vs Core Data + Magical Record的主要内容,如果未能解决你的问题,请参考以下文章

SQLite vs Core Data:保存大量数据

属性延迟初始化 vs Core Data 在主线程中运行

iOS 数据库比较:SQLite vs Core Data vs Realm

我无法使用 VS2010 运行 openCV2.3.1,因为未找到 opencv_core231d.dll

如何查看core文件是如何产生的

vs2017 js cordova + dotnet core 开发app