2011-05-15 4 views
2

, 우리는 사용자 문서의 경로를 우리가 결과로 다음과 같은 경로를 얻을문제 그리고 제안으로 영구 데이터

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

를 검색하려면 다음 코드를 사용하고 6649-4EA3-93FD-CDB802E346EC/Documents/

상기 경로에서 모든 사용자의 영구 데이터를 저장합니다.

응용 프로그램의 버전을 app-store에서 업그레이드 한 사용자에게 몇 가지 문제가 발생했습니다. 영구 데이터가 오래 읽혀지지 않을 수도 있습니다. 경로가 변경되어 새로운 버전에서 새 GUID가 사용되었을 수 있습니다.

이 문제는 appstore 업데이트 후에 만 ​​발생하므로이 문제를 테스트하고 디버깅 할 수있는 기능이 제한적입니다.

답변

12

사용자가 응용 프로그램을 업그레이드하면 식별자 (3E3C1F45-6649-4EA3-93FD-CDB802E346EC)는 변경 될 수 있지만 문서와 캐시는 이전 디렉토리의 새 디렉토리에 복사해야합니다.

영구 데이터에 절대 경로를 저장하고 파일을로드 할 때 사용할 수 있습니까? NSSearchPathForDirectoriesInDomain에서 반환 한 경로를 추가하여 문서 디렉토리에 파일 이름과 디렉토리 이름 만 저장하고 리소스를로드 할 때마다 (또는 적어도 시작할 때) 전체 경로를 생성해야합니다.

즉, t 대신 저장 된 경로를 같은

/var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/MyDirectory/MyFile.txt

을 저장

/MyDirectory/MyFile.txt

및 런타임에 NSSearchPathForDirectoriesInDomain에 의해 반환되는 무엇에 추가합니다.

관련 문제