데이터베이스를 NSBundle에서 문서 디렉토리로 복사하려고합니다.NSBundle에서 문서 디렉토리로 파일을 복사 할 수 없습니다.
이 파일을 복사하는 코드입니다 :
- (NSString *) getDBPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingString:@"Mydata.sqlite"];
}
- (void) copyDatabaseIfNeeded
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *dbPath = [self getDBPath];
BOOL success = [fileManager fileExistsAtPath:dbPath];
if(!success) {
NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Mydata.sqlite"];
success = [fileManager copyItemAtPath:defaultPath toPath:dbPath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable file with message '%@'.", [error localizedDescription]);
}
}
는하지만 왜 내가 내 아이 패드에이 응용 프로그램을 실행할 때, 그것은 충돌이다?
오류 메시지 란 무엇입니까? – Nekto
내가 왜 충돌하는지 알아 냈습니다! 문제는 여기에 있습니다. return [documentsDir stringByAppendingString : @ "Mydata.sqlite"]; 대신 stringByAppendingPathComponent를 사용해야합니다. – Lloydworth