2011-08-10 2 views
5

필자가 쓰고있는 iPad 앱에 정말 이상한 문제가 있습니다. 시작할 때 나는 응용 프로그램 번들에서 Documents 디렉토리로 몇 개의 다른 폴더 (비어 있음)를 포함하는 폴더를 복사하려고합니다. 'flds'(모두 소문자)라는 복사 할 폴더는 '추가 된 폴더에 대한 폴더 참조 만들기'를 사용하여 Xcode 4 프로젝트에 추가되었으며 실제로 컴파일 된 후에 .app 파일의 일부인지 확인했습니다. (그리고 이미 존재하지 않음을 복사 할 때.)장치에 NSBundle 폴더가 없지만 시뮬레이터에서 작동합니다.

내가 이러한 호출 중 하나 (그들은 모든 작업) 중 하나를 사용하여 'FLDS'폴더에 점점 시도했다 : 그런 다음

[[[NSBundle mainBundle] bundleURL] URLByAppendingPathComponent:@"flds"] 
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"flds"] 
[[NSBundle mainBundle] pathForResource:@"flds" ofType:@""] 

NSFileManager의 copyItemAtPath:toPath:error: 메서드 (또는 경로 문자열 대신에 URL을 사용할 때와 동일한 URL)를 사용하여 복사합니다.

다음 전략은 iPad 시뮬레이터와 iPad 기기에서 완벽하게 작동합니다. Ad Hoc 배포판을 만들었 으면 .app 및 .mobileprovision을 iTunes로 드래그하고 동기화 한 다음 장치에서 응용 프로그램을 실행하면 시스템은 더 이상 'flds'폴더가 있다고 생각하지 않습니다! 나는 운이없는 많은 시간 동안 이것을 시험하려고 노력해 왔습니다. 다시 말하지만, 시뮬레이터와 Xcode에서 실행되는 장치에서 모두 작동하지만 iTunes를 통해 동기화되는 것은 아닙니다.

아이디어가 있으십니까?

[[NSBundle mainBundle] pathForResource:@"flds" ofType:nil inDirectory:nil] 

을 그러나, 나는이 문서 디렉토리에 새 위치로 폴더를 복사하려면이 경로를 사용하는 경우 :

나는 다음 호출은 iTunes를 통해 아이 패드 응용 프로그램을 동기화 한 후 성공적으로 폴더 경로를 얻을 수 있다는 것을 발견 , 단지 폴더 자체와 .txt 파일 (테스트로 거기에 넣었습니다. 정말로 거기에 있어야하는 것은 아닙니다)이 복사되고 6-7 개의 빈 하위 폴더는 복사되지 않습니다. 다시 말하지만 동일한 패턴이 나타납니다 : Xcode ('test.txt'가 포함 된 'flds'폴더 및 빈 하위 폴더가 성공적으로 복사 됨)에서 실행되는 시뮬레이터 및 장치에서 예상대로 작동하지만 iTunes를 통해 동기화되는 경우 작동하지 않습니다 ('flds'폴더 'test.txt'는 하위 폴더가 아니라 복사됩니다.) 이것은 실제로 의도 된 동작입니까 copyItemAtPath:toPath:error:입니까? iTunes를 통해 동기화 한 후 왜 다르게 동작합니까?

+0

당신이 이것을 시도했는지는 확실하지 않지만, 앱을 마우스 오른쪽 버튼으로 클릭하고 패키지보기를 선택하여 폴더 버전이 최종 버전 (iTunes로 드래그 한 .app)에 있는지 확인해야합니다. 내용? 파인더를 통해 액세스하려는 파일 및 폴더를 찾을 수 있어야합니다. – Mark

+0

나는 그것을 시도했다. 폴더가 확실히 있습니다. 나는 또한 'flds'의 하위 폴더 중 하나에 .txt 파일을 넣고 pathForResource : ofType :을 통해 액세스하려고 시도했지만 실제로 작동합니다. 폴더 자체를 가져 오는 것은 아닙니다. – hsdev

+0

장치 자체에없는 파일을 사용하고 있는지 확인하십시오. 컴퓨터에 저장된 파일을 사용하려고했을 수도 있습니다. 확실하지 않은 경우 다른 컴퓨터에서 프로젝트를 열고 작동하는지 확인하십시오. – Sagiftw

답변

0

나는 그것이라고 생각한다고해도 copyItemAtPath:toPath:error:은 빈 폴더를 복사하지 않는다는 것을 알아 냈습니다. 또한이 동작은 iTunes를 통해 iPad에 앱을 동기화 한 후에 만 ​​발생했습니다 (Xcode에서 실행하면 빈 폴더가 복사됩니다). 내 솔루션은 당분간 단순히 각 하위 폴더에 더미 텍스트 파일을 넣어 더 이상 비어 있지 않도록하는 것입니다.