【问题标题】:how to export database file to iphone once app it ready?应用程序准备好后如何将数据库文件导出到 iphone?
【发布时间】:2013-02-03 17:35:50
【问题描述】:

我的 IOS5,Iphone 应用程序使用一个数据库,我用应用程序外部的数据填充该数据库。

应用程序只打开数据库文件并读取数据,不插入或更新。

应用程序在模拟器中运行良好,但是当我将它发布到 iphone 时它​​崩溃了 - 我相信这是因为没有复制数据库文件。

当前文件在上

/Users/stenio123/Library/Application Support/iPhone Simulator/6.0/Applications/4B3205EB-D98B-4D65-B22A-57E5E6A93F3C/MyAppName.app/MyDatabase.data

我通过使用获取代码中的位置路径

NSArray *documentDirectories = 
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                        NSUserDomainMask, YES);     
NSString *documentDirectory = [documentDirectories objectAtIndex:0];
documentDirectory stringByAppendingPathComponent:@"MyDatabase.data"]

这适用于模拟器。

但是,我应该进行哪些更改才能使其在真正的 iPhone 上运行?

我尝试将 MyDatabase.data 文件拖放到 XCode,确保我检查了“复制项目”和“添加到目标”。然后我将上面的代码更改为以下变体

NSString *documentDirectory = @"/MyDatabaseFolder/";

NSString *documentDirectory = @"./MyDatabaseFolder/";

NSString *documentDirectory = @"MyDatabaseFolder/";

但没有一个有效,即使在模拟器中也是如此。您能否提一些建议?

【问题讨论】:

    标签: iphone database file sqlite directory


    【解决方案1】:

    尝试通过将数据库文件拖到 Xcode 中的项目中来将其添加到应用程序的包中,而不是仅仅将其添加到文档目录中。从那里,您可以随意使用它,并且应该将其复制到设备中。例如:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyDatabase" ofType:@"data"];  
    NSData *data = [NSData dataWithContentsOfFile:filePath];  
    if (data) {
    
        // do something with the database data
    
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      相关资源
      最近更新 更多