ios - 普通核心数据 vs 核心数据 + 魔法记录

标签 ios swift core-data magicalrecord mogenerator

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

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

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

最佳答案

我强烈建议您不要使用 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 仍处于测试阶段, future 的重点是 3.0。如果您使用稳定版本并发现问题,它们将不会得到修复。如果/当 v3.0 准备就绪时,界面可能会完全不同。

关于ios - 普通核心数据 vs 核心数据 + 魔法记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28046251/

相关文章:

objective-c - iOS : Passing Array of Core Data entities from Obj-C to Swift

iphone - 为什么除非我首先访问父类的描述,否则 NSManagedObject 关系对象无法正确加载?

iOS Xcode 如何使用包含自定义对象的自定义对象来保存数据?

objective-c - 通知 NSFetchedResultsController 动态属性更改

ios - React Native iOS 版本构建的正确步骤

swift - 如何创建词典扩展

Swift 二元运算符 '+=' 不能应用于类型为 'AnyObject!' 和 'String!' 的操作数

swift - 如何将vapor连接到mongodb atlas

ios - 实现多个 View Controller 的策略

android - Flutter 检查文件存在于 ApplicationDocumentsDirectory