2011-08-31 4 views
1

배열에 plist 및 배열에 일부 문자열이 있습니다. 그래서 plist에 배열에 새로운 문자열을 쓰는 방법에 대해 궁금합니다. 아래 코드를 사용하여 plist에서 문자열을 얻으면 로그에 null이 생깁니다.plist에 배열로 문자열 쓰기

NSMutableArray *myPrimaryinfo = [[NSMutableArray alloc] initWithContentsOfFile:@"/private/var/mobile/Library/Keyboard/UserDictionaryWordKeyPairs.plist"]; 

NSLog(@"%@", myPrimaryinfo); 

내 PLIST는 다음과 같습니다 다음 있기 때문에

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <string>Test string1</string> 
    <string>Test string2</string> 
    <string>Test string3</string> 
    <string>Test string4</string> 
</array> 
</plist> 

답변

2

NSString *path = [[NSBundle mainBundle] pathForResource:@"DrinkArray" ofType:@"plist"]; 
+0

PLIST에 실제 경로는 다음과 같습니다 /private/var/mobile/Library/Keyboard/UserDictionaryWordKeyPairs.plist –

+0

primaryList.plist가 –

+0

실제로 당신이 필요로하는 경우의 단지 사본이었다 단지 프로젝트 PLIST를 포함 할 때마다 당신은 것입니다 프로젝트 plist 컴파일 시뮬레이터 경로에 포함됩니다 ... – DShah

0

당신은 iOS에서 할 수 없어 .. 아래와 같은 파일의 경로를 얻을 시도 파일 시스템이 앱의 샌드 박스 외부에서 불투명합니다. 아이폰 OS 파일 시스템에 응용 프로그램을 사용할 수 무엇에 대한 추가 정보를 원하시면,이 글을 읽을 :

http://developer.apple.com/library/iOS/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/RuntimeEnvironment/RuntimeEnvironment.html#//apple_ref/doc/uid/TP40007072-CH2-SW12

하는 대신 응용 프로그램에 사용할 수없는 파일 시스템의 일부에 액세스하는 노력이 앱의에서 PLIST 파일을 포함하여 고려 묶음. 앱이 plist를 동적으로 수정할 수있게하려면 앱 번들과 병행하여 Documents 디렉토리에 사본을 저장 한 다음 그 대신 plist를 읽습니다.

+0

Okey, plist가 내 애플리케이션 번들에 포함되었다고 말하면 plist의 배열에 어떻게 새 문자열을 추가 할 수 있습니까? :) –

+0

이것은 전혀 다른 질문이며, 여러 번 답변을 받았습니다. 예 : http://stackoverflow.com/questions/2292347/creating-a-plist-file-programatically – jlehr

+0

시작할 수있는 좋은 곳입니다. 하지만, Apple의 문서 : http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/CreatePropListProgram/CreatePropListProgram.html – jlehr