나는 FMDatabase를 사용하는 sqlite 데이터베이스 응용 프로그램을 사용하고 있습니다. 내가 UPDATE를 실행하기 위해 여러 번 시도Objective-C : 파일 복사 및 삭제 (FileManager)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *db_Path = [docsPath stringByAppendingPathComponent:db_name];
나는 문서 디렉토리에있는 데이터베이스의 데이터와 주요 번들
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:db_name];
에있는 데이터베이스의 테이블을 업데이트 할 "기본"데이터베이스에 쿼리하지만 잠겨 있다고합니다. 그래서 db_name_cp라는 이름으로 Documents Directory에서이 문제를 해결하고 작업하는 방법을 생각했습니다.
NSString *cpPath = [documentsDirectory stringByAppendingPathComponent:@"db_name_cp.sqlite"];
success = [fileManager fileExistsAtPath:cpPath];
if (success){
//remove the existing one
[fileManager removeItemAtPath:cpPath error:&error];
}
//create the copy of the "main bundle" database
[fileManager copyItemAtPath:default_database.dbPath toPath:cpPath error:&error];
그럼 내가 복사 된 데이터베이스를 통해 UPDATE를 실행하려고하지만 난 그 위에 SELECT를 실행하면 업데이트되지 않습니다 내가 phpMyAdmin을 나는 SQLiteManager에 쿼리를 실행하면이 기록을 업데이트합니다.
아이디어가 있으십니까? 어쩌면 내가 장치 디렉토리를 다룰 때 잘못 대처했을 수도 있습니다.
많은 감사
앱에서 아무 것도 변경할 수 없습니다. 앱의 mainBundle이 포함되어있는 것은 분명합니다. – zaph
예 doc 디렉토리에 저장된 데이터베이스에 대한 UPDATE 쿼리를 실행하는 데 사용하면 제대로 작동합니다. – Spale350z