0

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

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

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

当前文件已打开

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

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

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/";

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

4

1 回答 1

1

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

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyDatabase" ofType:@"data"];  
NSData *data = [NSData dataWithContentsOfFile:filePath];  
if (data) {

    // do something with the database data

} 
于 2013-02-03T17:40:37.413 回答