我試圖創建第一個應用程序的啓動數據庫文件。使用FMDB庫。爲此,我正在檢查數據庫文件是否已經存在,如果沒有,我想從項目中複製數據庫文件。 我的代碼:創建數據庫文件,如果不存在
-(void)checkAndCreateDatabase {
NSLog(@"check and create database doing");
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *dbFileName = [docDir stringByAppendingPathComponent:@"FriendsDatabase.sqlite3"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
if (![fileManager fileExistsAtPath:dbFileName]) {
[fileManager copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"FriendsDatabase" ofType:@"sqlite3"] toPath:dbFileName error:&error];
NSLog(@"database created");
} else {
NSLog(@"fail to create database");
}
FMDatabase *_db = [[FMDatabase alloc] initWithPath: dbFileName];
if (![_db open]) {
[_db release];
NSLog(@"Could't open DB");
}
_db.logsErrors = NO;
self.db = _db;
[_db release];
}
但我有一個錯誤:'NSInvalidArgumentException', reason: '*** -[NSFileManager copyItemAtPath:toPath:error:]: source path is nil'
。我做錯了什麼?
這是不可能的。我在我的項目中添加了「FriendDatabase.sqlite3」。我檢查了/ myProject /目錄中的數據庫文件的位置。 – RomanHouse
看到我上面的修改。 – Caleb