첫 번째 응용 프로그램 시작시 데이터베이스 파일을 만들려고합니다. 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