我使用iOS 2.0创建了我的应用程序,首先直接使用C库。然后我继续使用FMDB(对我来说更容易)。但是今天,管理错误,缓存和预取数据已经变得非常麻烦。我很确定使用CoreData可以使应用程序更具响应性和更轻(内存方面)。
我准备经历漫长而艰苦的工作,重做CD中的所有内容,但我需要迁移现有数据。我考虑过用新对象(CDTrack,CDTrackPoint,CDSegment等)创建一个新模型,然后将Track,TrackPoint Segment等对象中的现有数据移动到这个新商店。但这真的是一个明智的想法吗?有没有比逐个复制旧图表更好的方法呢?
答案 0 :(得分:2)
你基本上是在正确的轨道上。
我可能会做的是创建一个NSOperation,用于在应用启动时运行,如果需要迁移数据的话。
根据您的应用程序,该操作可能能够在后台运行(请注意Core Data线程规则!),使用通知与主线程NSManagedObjectContext进行通信。
如果您的应用在没有迁移这些数据的情况下没有任何意义,那么您可能会在数据迁移时建立带有进度指示器的模态视图,让用户更好地了解他们需要等待多长时间。< / p>
根据我们谈论的数据量,您可能会对Core Data和SQLite如何快速完成此类操作感到惊讶......关键是要让用户知情,尽量少量可能的时间,如果您的应用程序设计支持它,请在后台执行。确保从主线程开始工作以保持UI响应。
玩得开心!