2011-05-16 5 views
5

폴더 참조로 복사 한 리소스 묶음에 plist가 있습니다. 웬일인지, 편집 된 & (Xcode에서) plist가 앱을 삭제하기 전까지는 복사/업데이트되지 않습니다. 그렇지 않으면 이전 plist (편집하기 전에), 비록 내가 응용 프로그램을 삭제하더라도 복사됩니다. 데이터가 남아 있습니까?빌드 및 실행 : plist가 업데이트되지 않습니다.

plist가 자주 편집되므로 디버깅은 매우 시간 소모적입니다. plist가 제대로 복사되었는지 어떻게 확인할 수 있습니까?

+0

디버그 환경에서 내 문제를 해결하고 다시 설치 ... thanks –

답변

1

문서 폴더에 plist 파일을 복사 하시겠습니까? 복사하는 경우 앱을 실행할 때마다 iPhone 시뮬레이터에서 앱을 삭제해야합니다.

또한 앱을 실행할 때마다 문서 폴더에서 파일을 복사 할 수 있습니다. 시뮬레이터/장치에서 응용 프로그램을 삭제해야 문서 폴더의 콘텐츠를 삭제할 수 있기 때문입니다.

그러면 시뮬레이터/장치 및 xcode를 다시 시작할 필요가 없습니다.

+0

plist가 Documents가 아닌 리소스 번들에 복사됩니다. 따라서 앱을 삭제할 때 리소스 데이터가 삭제 될 것으로 예상되지만 앱 만 삭제하면 삭제되지 않습니다. – Morrowless

+0

리소스의 데이터를 삭제할 수 없으므로 수동으로 삭제해야합니다. BTW : 문서에서 파일을 복사하지 않으면 편집 할 수 없습니다. – Saurabh

+0

편집은 런타임이 아니라 Xcode에서 수행해야한다는 것을 분명히해야합니다. – Morrowless

0

이것은 답장입니다. 그러나 헤이, OP는 정확한 대답을 표시하지 않았다. 그래서 여기 나의 해결책이있다. 두 개의 속성 목록을 만들었습니다. 첫 번째는 상수, 문자열 및 부울과 같은 디버깅 정보입니다. 이 속성 목록은 SETTINGS.plist입니다. 내 다른 plist는 내가 게임 데이터를 저장하는 데 사용하는 plist입니다. 설정 plist가 xcode 인터페이스를 통해 업데이트 된 것이므로 앱을 실행할 때마다 업데이트됩니다. 여기

-(void)setUpPlist{ 

listPath = [[self docsDir] stringByAppendingPathComponent:@"SETTINGS.plist"]; 

if (![[NSFileManager defaultManager] fileExistsAtPath:listPath]) { 
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil]; 

} 
else { 
    [[NSFileManager defaultManager] removeItemAtPath:listPath error:nil]; 
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil]; 
} 

savedData = [NSMutableDictionary dictionaryWithContentsOfFile:listPath]; 
} 

-(NSString *)docsDir{ 
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
} 

는 listPath는 NSString 형이고 savedDate는 NSMutableDictionary 타입이다. 희망이 도움이됩니다.

관련 문제