2011-05-16 3 views
0

를 사용하여 하나의 plist를 PLIST에 새 항목을 추가하고 난 EXM에 대한 을 PLIST에 항목을 추가하고 :내 리소스 파일에 내가 만든 장치

plistarray=[NSMutableArray arrayWithContentsOfFile:@"/Users/mangomac2/Desktop/chat module/complete (iphoneDesign) 2/picture-vide 2/Data.plist"]; 
    if (plistarray==nil) 

     plistarray=[NSMutableArray array]; 
    [plistarray addObject:datadict]; 
    [plistarray writeToFile:@"/Users/mangomac2/Desktop/chat module/complete (iphoneDesign) 2/picture-vide 2/Data.plist" atomically:YES]; 
    [datadict release]; 

내 데이터가 PLIST에 추가되지만 때마다 메신저 내 코드를 업로드 장치에 plist에 추가하지 않고 plist에 검색하지 않음.

내가 실수 한 부분을 알려주십시오.

답변

0

먼저, 앱이 시뮬레이터의 다른 위치에 설치 될 것이라는 사실과 다른 모든 기기의 다른 위치에 앱이 설치된다는 사실을 고려하지 않고 앱에 경로를 하드 코딩해야합니다. 잘. 둘째, 애플리케이션 번들 내에서 파일을 업데이트하려고하는 것 같습니다. 이것은 허용되지 않으며 iOS가 파일 시스템 권한을 사용하여 앱 번들의 쓰기 금지를 시행하면 실패 할 수 있습니다.

번들에있는 파일을 찾으려면 NSBundle 클래스의 적절한 방법을 사용해야합니다. 예를 들어 Data.plist 파일의 경로를 얻으려면 [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]을 사용할 수 있습니다.

이 파일을 수정하려면 먼저 쓰기 가능한 위치에 복사 한 다음 나중에 번들 대신이 위치에서 다시 읽어야합니다. NSSearchPathForDirectoriesInDomains을 사용하여 적절한 디렉토리를 얻을 수 있습니다. 예를 들어 [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]은 앱의 Documents 디렉토리 경로를 제공합니다. 그런 다음 [directory stringByAppendingPathComponent:@"Data.plist"]과 같은 것을 사용하여 Data.plist를 저장할 수있는 장소의 전체 경로와 파일 이름을 가져올 수 있습니다.

관련 문제