![]() |
1
2
我发现在iPhone应用程序中使用核心数据的主要好处是:
这就是说,如果你的应用程序已经被设计成与一个sqllite数据库兼容,你真的需要问问自己是否准备好转换你的应用程序了。 你至少需要做这些事情:
如果您已经解决了几乎所有这些问题,那么从将现有应用程序移植到核心数据中获得的好处就是优雅并跟上最新技术的发展。为了达到这个目标,你必须付出不小的努力,而且考虑到这些好处可能并不惊人,你可能会发现它不值得你花一段时间。 为了回答您的第二个问题,如果您诚实地使用核心数据,我真的想不出直接使用sqllite的任何理由。例如,我不确定外部连接在核心数据中是否非常简单。但是,您通常不会以这种方式使用核心数据——您将按程序使用它来创建与SQL中的外部联接相同的效果。 对于统计数据和其他东西,我仍然会使用核心数据,因为它提供了一些出色的聚合功能。 注意,没有什么能阻止您采取相反的方法:采用核心数据来扩展功能,直到您对它感到足够舒适,然后开始移植您的主要应用程序现有代码来使用核心数据。 |
![]() |
2
0
另一个答案很好,但我不同意主要是优雅和跟上技术的好处…移动到核心数据的真正原因实际上是与性能和内存相关的,核心数据非常智能地管理缓存,您需要做很多工作来复制它。对我来说,这是考虑它的唯一原因,因为如前所述,它非常冗长,而且您还必须处理所有需要使用nsnumber来保存基元值的数据对象(我觉得这特别烦人)。 对于类似于您的设置的东西,我可能会采用的迁移方法是让每个模型类都保存在实际上是存储类的托管对象上—这样您的整个代码就不必更改,只需要模型对象中的一些内容,以及可能为处理创建或填充模型对象。这甚至隐藏了nsnumber包装的原语问题。 如果您正在强烈考虑使用核心数据,那么您可能还想看看这本涵盖iPhone特定核心数据的书(包括nsfetchedresultsController): http://www.pragprog.com/titles/mzcd/core-data 你可以买一本电子书,只解锁PDF版本,这不是太贵… |
![]() |
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 8 月前 |
![]() |
routern · 如何组合contextMenu和圆角矩形? 9 月前 |
![]() |
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
![]() |
dunoiww · 从全屏返回时如何触发onAppear 2 年前 |
![]() |
Community wiki · iPhone上ivar的继承问题 2 年前 |
![]() |
Community wiki · 查找iOS日历 2 年前 |
![]() |
Community wiki · 有效的IPhone编程技术[关闭] 2 年前 |