0

如果我使用捆绑包中内置的数据库编译我的 iPhone 应用程序,我必须使用什么路径来查找文件以便我可以打开它,如下所示:

FMDatabase* db = [FMDatabase databaseWithPath:@"/???/database.sqlite"]; 
4

2 回答 2

0

无论模拟器或设备如何,您都可以这样使用。请不要忘记将 db 文件添加到您的项目文件夹并添加到您的包中。

#define DATABASE @"databasefile.sqlite"


NSArray *documentPaths      = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir      = [documentPaths objectAtIndex:0];
databasePath                = [[NSString alloc] initWithString:[documentsDir stringByAppendingPathComponent:DATABASE]];
于 2012-07-05T09:36:30.843 回答
0

在你的里面 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

设置以下代码:

databaseName=@"yourfileName.sqlite";    
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [documentPaths objectAtIndex:0];
    databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
    [self checkAndCreateDatabase];

-(无效)checkAndCreateDatabase {

BOOL success;


NSFileManager *fileManager = [NSFileManager defaultManager];

success = [fileManager fileExistsAtPath:databasePath];

if(success) return;
else
    printf("NO File found");

NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];

}

于 2012-07-05T09:40:44.107 回答