2011-02-25 3 views
12

내 iPad 응용 프로그램의 개인 디렉토리에 파일을 저장합니다. 즉, 사용할 때 반환되는 파일입니다.iOS 앱을 업데이트해도 라이브러리 디렉토리 파일이 삭제됩니까?

paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
documentsDirectory = [paths objectAtIndex:0]; 
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Private Documents"]; 

또한 하위 디렉토리를 추가합니다. 앱을 업데이트하면 사용자가 앱의 진행 상태가 파괴되고 있다고 알려줍니다. 앱을 업데이트 할 때마다이 NSLibraryDirectory의 파일이 삭제됩니까? 그렇다면 대신 NSDocumentDirectory를 사용해야합니까?

또한 내 모든 현재 사용자의 파일 저장을 손상시키지 않고이를 해결하기 위해 앱을 추가로 업데이트 할 수있는 방법이 없습니까? 거기있는 것처럼 보이지 않습니다.

답변

2

당신은 문서 폴더에 저장해야합니다, 그것은 업데이트에 걸쳐 지속됩니다.

Monotouch : documentsDirectory = environment.specialfolder.personal;

목표 - C : 나는 또한 큰 온라인 게임과 개인적인 경험으로이 정보를 추가 할 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

+0

난 정말 당신이 위의이 코드 줄을 이해하지 못하는이 링크를 참조하십시오. 설명 할 수 있니? 내가 수집 한 것부터 위에서 수행 한 것 대신 NSDocumentDirectory를 사용할 수 있으며 subdir은 지워지지 않도록 보호해야합니다. 맞습니까? – Joey

+0

네, 맞습니다. 위의 코드는 문서 디렉토리에 대한 문자열 경로를 제공합니다. 그것을하는 더 청결한 방법. –

+0

크리스, 너는 아이폰 OS에 대해 말하는거야? 왜냐하면 "environment.specialfolder.personal"과 같은 것이 없기 때문입니다. 또는이 기능에 액세스하려면 사용자 지정 솔루션에 대해 이야기하고 있습니다. –

3

. "문서"와 "라이브러리"폴더가 항상있을 것이라고 100 % 의지 할 수는 없습니다. 사실, 업데이트 후에도 앱 폴더가 기기의 동일한 위치에 유지된다는 사실에 의존 할 수 없습니다.

나를 조금 더 설명해 보자. 귀하의 장치에 응용 프로그램을 설치하면 실제 경로는/var/mobile/Applications/[some class id]/[your app] .app/...가됩니다. 누가 당신의 클래스 ID를 정의하는지 확실하지 않습니다. app (iOS 또는 앱 스토어)이지만이 ID는 게임을 업데이트 할 때 변경할 수 있으므로 앱이 완전히 다른 폴더에 있으므로 이전 파일이 더 이상 존재하지 않게됩니다. 우리의 품질 관리는 사용자와 사용자에게 많은 경험을주었습니다.

나는 우리가 우리가이 (개인 회사 물건 평소 똥 ...)를 해결하기 위해 관리 어떻게을 발견하고 방법에 대한 세부 사항을 통과하지 않습니다,하지만 당신이 일을하는 경우에 당신이 그것을 고려할 필요가

앱은 수십 명의 사용자에게 영향을 미치고 몇 번 업데이트 될 수 있습니다. 그 이후로 수정되었을 수도 있지만 백업 계획이있는 것이 좋습니다. 사용자가 응용 프로그램 업데이트를 다운로드 할 때

+0

사실 내 응용 프로그램에서이 문제가 발생하고 있다고 생각합니다 ... – Peres

+0

응용 프로그램의 이름이 특수 문자를 이름이나 공백에 추가합니까? 내가 궁금해하기 때문에 .... – Peres

+2

사과 API를 통해 검색된 경로는 앱이 위치한 주소를 추상화합니다. 업데이트 프로세스 중에 iOS는 문서 디렉토리를 새로운 위치로 백업합니다. [some class id] 또는 [you app] .app name의 변경은 Documents 디렉토리 파일에 영향을 미치지 않아야합니다. 귀하의 가정은 잘못된 IMO입니다. ref : https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10 – tGilani

17

는, iTunes는 새로운 응용 프로그램 디렉토리에 업데이트를 설치합니다. 그런 다음 이전 설치를 삭제하기 전에 사용자의 데이터 파일을 이전 설치에서 새 app 디렉토리로 이동합니다. 다음 디렉토리에있는 파일은 업데이트 과정 중에 보존이 보장됩니다/

Application_Home 문서

을 다른 사용자 디렉토리에있는 파일도 이상 이동 될 수 있지만, 당신은에 의존해서는 안

Application_Home/라이브러리 업데이트 후에 제공됩니다.

사과에 의해 공식적으로 제공됩니다. iOS Developer Library - File Saved During App Updates

+3

링크 "iOS 개발자 라이브러리 - 파일 업데이트 중 저장 한 파일 "이 깨졌습니다. – yair

+1

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html –

관련 문제