1

我使用 iOS 2.0 创建了我的应用程序,首先直接使用 C 库。然后我继续使用 FMDB(对我来说更容易)。但是今天,管理数据的故障、缓存和预取已经变得太麻烦了。我很确定使用 CoreData 会使应用程序响应更快、更轻(内存方面)。

我已准备好在 CD 中重做所有内容的漫长而艰苦的工作,但我需要迁移现有数据。我考虑过使用新对象(CDTrack、CDTrackPoint、CDSegment 等)创建一个新模型,然后将 Track、TrackPoint Segment 等对象中的现有数据移动到这个新存储中。但这真的是一个明智的想法吗?有没有比一张一张复制旧图更好的方法呢?

4

1 回答 1

2

你基本上是在正确的轨道上。

如果需要迁移数据,我可能会创建一个 NSOperation 用于在应用程序启动时运行的迁移。

根据您的应用程序,该操作可能能够在后台运行(注意核心数据线程规则!),使用通知与主线程 NSManagedObjectContext 通信。

如果您的应用在没有迁移这些数据的情况下没有任何意义,那么您可能会在数据迁移时设置一个带有进度指示器的模态视图,让用户更好地了解他们还需要等待多长时间。

根据我们讨论的数据量,您可能会惊讶于 Core Data 和 SQLite 可以多快地完成此类事情......关键是让用户了解情况,在尽可能短的时间内完成,并且如果您的应用程序设计支持它,请在后台执行。确保在主线程之外完成工作以保持 UI 响应。

玩得开心!

于 2011-01-19T00:56:27.147 回答