좋아, 지금은 에뮬레이터에서 개발 완료 및 내 테스트 장치에 설치할 때, 나는 오류에게 DB를 제어 할 수있는 설정은 무엇 읽기 전용 데이터베이스sqlite3 iPhone 에뮬레이터 대 장치 권한?
를 작성하는
시도를 얻었다 접속하다? 배포시 관리가 어려울까요?
추가 정보 ... 나는 무슨 일이 일어나고 있는지 알고 있다고 생각합니다 ... 내 DB를 찾을 때 튜토리얼과 같은 경로에 있지 않습니다. 내가 뭘하고 싶은지는 "콘텐츠"에 대한 프로젝트의 루트 폴더 아래에있는 그룹입니다. 이 그룹에 정의 된 경로 아래에 JustADatabase.sqlite 파일을 추가했습니다. 모든 경로가 쓰기 가능하지는 않기 때문에 사용자가 만든 경로는 설치시 쓰기가 가능하지 않습니다.
올바른 방법으로 파일을 설치하려면 빌드/복사 스크립트를 사용하는 방법이 있다고 생각합니다.
이것이 문제라고 생각하십니까? 수정 사항을 스크립팅하는 방법이나 파일을 프로젝트의 올바른 위치에 두어 올바르게 복사되도록하는 방법을 알고 있습니까? 다음은 주석 처리 된 '튜토리얼'경로가있는 sqlite-open 명령에 이르는 코드입니다. 이는 읽기 작업에 사용되며 쓰기 액세스 거부의 원인 일 수 있습니다.
- (void)initializeDatabase { // ??? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // ??? NSString *documentsDirectory = [paths objectAtIndex:0]; // ??? NSString *pathTutorial = [documentsDirectory stringByAppendingPathComponent: @"JustaDatabase.sqlite"]; NSString *path = [[NSBundle mainBundle] pathForResource:@"JustaDatabase" ofType:@"sqlite"]; if(sqlite3_open([path UTF8String], &database) == SQLITE_OK) { NSLog(@"%s: opened database %@", __FUNCTION__, path); } else { NSAssert1(0,@"Failed to open database: '%s'.", sqlite3_errmsg(database)); } }