2012-06-16 16 views
2

SQLite 데이터베이스 파일이 프로젝트에 포함되어 있습니다. 시뮬레이터에서 데이터베이스 쿼리는 정상적으로 작동하지만 장치에서는 작동하지 않습니다.장치에서 실행할 때 SQLite 파일을 찾을 수 없습니다.

데이터베이스 파일의 경로는 다음과 같습니다 : DB를 찾습니다 /var/mobile/Applications/5914F328-148F-52E6-1AC9-38D7FF141F9B/MyApplication.app/db.sqlite

내 관련 코드는 (AN NSLog와 콘솔과 같이) 내가 장치에서 실행되는 내 데이터베이스 파일 경로는 이것이다 :

NSFileManager *fileMgr=[NSFileManager defaultManager]; 
    NSString *dbPath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"db.sqlite"]; 
    NSLog(@"The path for the database file is : %@",dbPath);//Display the whole path 

나는 시뮬레이터와 장치의 경로가 완전히 다르다는 것을 알고 있습니다. 그렇다면 데이터베이스 파일을 상대적으로 찾기 위해 위의 코드를 어떻게 변경해야합니까?

+0

희망이 도움말을 희망 : 응용 프로그램이 장치에서 실행되는 경우 어떻게 SQLite는 데이터베이스 파일을 얻으려면] [1] [1] : http://stackoverflow.com/questions/6620691/how-to-get-sqlite-database-file-device-running-on-device – webmastx

+0

아니요, 파일 경로의 상대 매핑은 iOS에서 자동으로 수행됩니다. 장치 변경에 대한 코드를 변경할 필요가 없습니다. 그것은 모든 장치 (시뮬레이터 포함)에 잘 작동합니다. – Ananth

+0

그래도 장치에서 실행할 때 데이터베이스 파일을 인식하지 못하는 이유는 무엇입니까? – Luca

답변

3

내 문제를 해결했는데 같은 문제에 대한 투쟁이 있었기 때문에 내 번들 리소스에 내 SQLite 파일 db.sqlite을 포함시켜야합니다. project target-->Build Phases--->Copy Bundle Resources을 클릭하고 + 버튼을 클릭하고 SQLite 파일을 추가하거나 프로젝트 그룹 및 파일에서 SQLite 파일을 끌어다 놓습니다. 이 도움말 :

관련 문제