2012-07-20 2 views
4

에 PLIST 파일에서로드 사전 나는 다음과 같은 목적 C 코드아이폰 OS : 배열

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Load data from the plist file 
    NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Menu" ofType:@"plist"]; 
    self.menuArray = [NSMutableArray arrayWithContentsOfFile:plistPath]; 
} 

를 사용 해요 NSMutableArray를

<?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"> 
<dict> 
<key>Item 0</key> 
<dict> 
    <key>title</key> 
    <string>East Coast</string> 
</dict> 
<key>Item 1</key> 
<dict> 
    <key>title</key> 
    <string>West Coast</string> 
</dict> 
<key>Item 2</key> 
<dict> 
    <key>title</key> 
    <string>South Rhodes</string> 
</dict> 
</dict> 
</plist> 

에 다음 PLIST 파일을로드하기 위해 노력하고있어 plist의 이름은 Menu.plist입니다.

코드가 실행 된 후 menuArray는 비어 있습니다.

이상한 점은 Apple의 "QuickContacts"샘플 코드에서 동일한 코드가 사용되고 있으며 모든 것이 완벽하게 작동한다는 것입니다.

감사합니다.

답변

13

plist 파일은 사전을 정의합니다. 참으로, 루트 객체가 dict입니다 : 그래서

<plist version="1.0"> 
<dict> 

일부 데이터 구조에로드하기 위해, 당신은뿐만 아니라 NSDictionary와 함께 시도 할 수 있습니다 :

self.menuDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath]; 

을 다른 방법으로, 당신은 그래서 당신의 PLIST를 변경할 수 있습니다 사전을 정의합니다. 이것은 Xcode plist editor를 사용하면 쉽지 않습니다. 그렇지 않으면 여러분 앞에 약간의 텍스트가 편집됩니다.