我正在实施基于导航的应用程序。用户将深入到感兴趣的节点。我正在使用核心数据,主要是因为我想尝试一下。我如何最初加载数据库?我应该编写自定义代码来加载数据库最初,还是有一些工具为我做?将数据加载到核心数据模式中
回答
没有自动(即内置)方法将数据导入到Core Data上下文中。
我怀疑这是因为Core Data实际上是一个对象图管理框架(它恰好能够将该对象图持久化到磁盘)以及数据和对象实例之间的映射取决于该模式至少需要一些代码)。
如果您已经有了另一种格式的数据,您应该阅读importing data into a Core Data context上的核心数据编程指南部分。如果您还没有其他格式的数据,您将不得不以任何方式编写代码(以生成中间格式或直接填充上下文)。
最后,虽然它不是一个真正的公共API,核心数据的XML格式是很容易通过手工或使用任意数量的基于XML的工具一起工作。根据数据的复杂性,您可能能够对XML模式进行反向工程,以生成支持XML的持久性存储。然后,您可以将此商店迁移到SQLite持久性商店,然后您就可以开始使用了。
目前据我所知,您必须编写自定义代码来填充数据库。
这确实看起来像是一个缺点,我真的很希望看到一个针对批量(shell)预填充数据源的工具,这个工具可以被CoreData使用。
以下是使用plist预加载Core Data存储的简单方法。
使含有字典的阵列的属性列表。使每个字典的键对应于您的管理对象的键。
alt text http://www.freeimagehosting.net/uploads/b0b1909e81.png
然后,调用此方法第一次启动应用:
- (void)loadDataFromPropertyList {
NSString *path = [[NSBundle mainBundle] pathForResource:@"someFile" ofType:@"plist"];
NSArray *items = [NSArray arrayWithContentsOfFile:path];
NSManagedObjectContext *ctx = self.managedObjectContext;
for (NSDictionary *dict in items) {
NSManagedObject *m = [NSEntityDescription insertNewObjectForEntityForName:@"TheNameOfYourEntity" inManagedObjectContext:ctx];
[m setValuesForKeysWithDictionary:dict];
}
NSError *err = nil;
[ctx save:&err];
if (err != nil) {
NSLog(@"error saving managed object context: %@", err);
}
}
呼叫loadDataFromPropertyList
第一次应用程序启动的,包括在application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
执行以下代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"firstRun"])
{
[defaults setObject:[NSDate date] forKey:@"firstRun"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self loadDataFromPropertyList];
}
谢谢,它已经一段时间,因为我用这个,我得到一个错误SIGBRT,我不记得什么我应该删除,下次我想这个加载。想法? – 2012-03-20 19:39:16
- 1. 核心数据:加载模型失败
- 2. 从核心数据加载
- 3. 核心数据加载
- 4. 如何将数据加载到核心数据?
- 5. SWIFT核心数据加载到pickerview
- 6. 建模到核心数据
- 7. 将数据移动到核心数据
- 8. 将实体添加到核心数据
- 9. 将核心数据保存到核心数据
- 10. 将核心数据保存到核心数据
- 11. 如何将此数组加载到核心数据实体?
- 12. 将CSV加载到核心数据中托管的sqlite db
- 13. 将数据加载到核心数据(iOS)中的最快/首选方法
- 14. 核心数据延迟加载问题
- 15. 核心数据iPhone - 加载字符串
- 16. Xcode加载核心数据滞后
- 17. Swift核心数据预加载persistentStoreCoordinator:
- 18. 如何从NSPersistentDocument中的核心数据预加载数据?
- 19. 在从核心数据加载数据中获取特定值?
- 20. 将数组保存到核心数据
- 21. 如何评论核心数据模式?
- 22. 使用Ghost模式的核心数据?
- 23. 核心数据代表保存模式
- 24. 将现有的类添加到核心数据模型
- 25. 制作一个UIButton将数据添加到核心数据模型
- 26. 正确的方式将关系数据添加到核心数据
- 27. 核心数据建模多到很多
- 28. 核心数据加密类
- 29. 核心数据SQLite加密?
- 30. 核心数据加密
嘿安德烈 - 你说的是用填充的信息,请SQLLite数据库或实际加载的核心数据模型一旦应用程序正在运行?为此 – 2009-06-30 02:52:12