是否将本地SQLite数据库复制到iPhone?

是否将本地SQLite数据库复制到iPhone?,iphone,objective-c,sqlite,core-data,Iphone,Objective C,Sqlite,Core Data,我正在用coredata和objective-c做一些实验。 我的应用程序在模拟器中运行良好 它也适用于我的iPodTouch但如何将本地数据库复制到设备? 谢谢,将sqlite文件从模拟器目录结构中复制出来(在~/Library/Application-Support/iPhone-simulator下),并将其放入您的项目中,以包含在参考资料目录中。到达后,您可以: 在运行时将文件复制到文档目录,使其可写;或 直接从应用程序包中引用它,使其成为只读数据库 根据您的应用程序需要。这是解决方案(

我正在用coredata和objective-c做一些实验。 我的应用程序在模拟器中运行良好

它也适用于我的iPodTouch但如何将本地数据库复制到设备?


谢谢,

将sqlite文件从模拟器目录结构中复制出来(在~/Library/Application-Support/iPhone-simulator下),并将其放入您的项目中,以包含在参考资料目录中。到达后,您可以:

  • 在运行时将文件复制到文档目录,使其可写;或
  • 直接从应用程序包中引用它,使其成为只读数据库
  • 根据您的应用程序需要。

    这是解决方案(感谢Marcus S.Zarra)

    改变这个

    NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Locations.sqlite"]]
    
    为此:

    NSURL *storeUrl = [NSURL fileURLWithPath: [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"Locations.sqlite"]];
    

    听起来不错。但是如何从应用程序包中直接引用它以使其成为只读数据库呢?我尝试了这个。但它不起作用:-(NSURL*storeUrl=[NSURL fileURLWithPath:@”bundle://Locations.sqlite“];[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType配置:nil URL:storeUrl选项:nil错误:&error][[NSBundle mainBundle]路径用于资源:@“Locations”类型:@“sqlite”]将返回一个字符串路径。然后将其转换为带有[NSURL fileURLWithPath:]的URL将返回URL,然后传递到核心数据中。