2010-12-29 1 views
3

데이터 저장을 위해 Core Data를 사용하는 iPad 앱이 있습니다. iTunes에서 파일 공유를 사용하고 싶습니다. 사용자가 .sqlite 파일을 삭제하거나 수정할 수 없도록하고 싶습니다.핵심 데이터 및 iTunes 파일 공유 - 앱 업데이트시 .sqlite 파일 이동/숨기기?

다른 숨겨진 디렉토리로 파일을 이동할 수 있습니까?

또는 파일을 읽기 전용으로 설정할 수 있습니까? 내가 바꿀 수없는 한 사용자가 파일에 액세스하는 것을 꺼리지 않을 것입니다.

나는 그 순간 나를 피하고있는 사소한 해결책이 있다고 생각합니다.

+0

NSLibraryDirectory를 사용하려고합니다. 자세한 내용은이 답변을 참조하십시오. http://stackoverflow.com/questions/1567134/how-can-i-get-a-writable-path-on-the-iphone/1567147#1567147 –

+0

감사합니다. 필자는 Documents 디렉토리에서 파일을 옮기는 방법을 가장 혼란스럽게 생각합니다. 마이그레이션 자체는 사소한 것처럼 보입니다. (앱 델리게이트에서 영구 저장소를 만들기 전에 파일을 이동 한 다음 실행시 각 위치에서 유효한 파일을 확인하십시오.) – Eric

답변

2

recommended directories 중 하나에 핵심 데이터 데이터 저장소를 저장해야합니다. 필요한 경우 문서 디렉토리의 파일 공유를 통해 사용자에게 데이터 저장소에 복사하여 데이터 저장소에 액세스 할 수있게 만들 수 있습니다. 문서 디렉토리에서 파일이나 디렉토리를 덮어 쓰거나 삭제하는 것을 사용자가 제한 할 방법이 없습니다 (iTunes 파일 공유를 통해).

+0

캐시에 데이터베이스를 저장하지 않으시겠습니까? 디렉토리 : OS는 언제든지 내용을 삭제할 수 있으며, 백업되지도 않으므로 사용자가 장치를 복원 (또는 교체 등)하면 데이터베이스가 완전히 사라집니다. 라이브러리 디렉토리. 질문에 내 의견보기 –

+0

위의 문서는 라이브러리 디렉토리를 사용할 수 없다는 것을 의미하지만 응용 프로그램 지원 디렉토리를 사용하는 것이 더 적절할 수 있습니다. "NSSearchPathForDirectoriesInDomains를 호출하면 NSSearchPathForDirectoriesInDomains를 호출 할 수 있습니다. NSUserDomainMask가 아닌 도메인 마스크 매개 변수 또는 표 3-1 이외의 디렉토리 상수가 있지만 응용 프로그램은 반환 된 디렉토리 locat에 쓸 수 없습니다. 이온 "이라고 말합니다. 라이브러리 폴더에 직접 쓰려고하지 않았지만 할 수 없기를 기대합니까? 내 대답을 좀 더 일반적이고 공개적으로 끝낼 것입니다. – slycrel

+0

감사합니다. 업데이트 해 주셔서 감사합니다. 실제로 장치의 라이브러리 디렉토리에 쓸 수 있습니다. 당신은'NSApplicationSupportDirectory'에 대해 옳을 수도 있지만, 시도하지는 않았지만 적절한 것으로 들리고 목록에 있습니다. –