2012-07-24 5 views
0

plist 파일에서 배열을 복사하려고했지만이 배열의 키 값을 잃어 버렸습니다.사전 키 값 없음

NSString *path = [[NSBundle mainBundle]pathForResource:@"Cars" ofType:@"plist"]; 
NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:path]; 

self.brand = [dict objectForKey:@"Chevrolet"]; 

새로운 사전 브랜드이 만 시보레 자동차 (그것은 문자열의 배열입니다)이 포함되어 : 이것은 내가 PLIST의 내용을로드하는 방법입니다. 내가 시보레 키 값 을 유지하고 싶은

NSDictionary *brand; 
@property (nonatomic, retain) NSDictionary *brand; 

하지만 난 단지 그것의 내용 (문자열 배열)가로 : 새로운 사전이 선언된다. 유일한 방법은, 루프이며, ???와 함께 새 사전 컨텐츠를 구축 :

NSArray *objects = [NSArray arrayWithObjects:@"Camaro", @"Corvette", nil]; 
NSDictionary *brand =[NSDictionary dictionaryWithObject:objects forKey:@"Chevrolet"]; 

추가 정보 :

NSDictionary *brand; 
@property (nonatomic, retain) NSDictionary *brand; 
: (헤더 파일)있는 NSDictionary 브랜드

선언

PLIST의 콘텐츠 :

<plist version="1.0"> 
<dict> 
<key>Chevrolet</key> 
<array> 
<string>Camaro</string> 
<string>Corvette</string> 
</array> 
<key>Ford</key> 
<array> 
<string>Mustang</string> 
<string>Kuga</string> 
<string>Ranger</string> 
</array> 
</dict> 
</plist> 

IDEA : 테이블에있는 읽기만보기 (예 : CHEVROLET)

단순한 문장 (브랜드 = [dict objectForKey : @ "Chevrolet"];)이없는 루프 만 표시됩니다. 새 용어 사전에 보관 브랜드 키 배열.

현재 키를 잃어 버렸고 배열 만 복사 할 수 있습니다. 그것은 당신의 brand 개체처럼 보이는

+3

루트 plist의 전체 내용을 유지하지 않는 이유는 무엇입니까? –

+0

어떻게 이전 NSDictionary 값을 새로운 것으로 복사하려고 했습니까? 그것을위한 코드는 어디에 있습니까? 'Cars.plist'의 내용은 무엇입니까? – holex

+0

나는 더 많은 정보를 가지고 질문을 편집했다. – Markus

답변

0

은 당신이 NSDictionary로 선언에도 불구하고 NSArray 아닌 NSDictionary이다, 그래서 "키"가 없다. 그러나 dic 사전은 원하는대로 보입니다. 브랜드 키와 일련의 모델을 연관시킵니다. 다른 사람이 말했듯이 plist 파일을 보지 않고 얻은 결과를 정확히 아는 것은 어렵습니다.

+0

나는 더 많은 정보를 가지고 질문을 편집했다. – Markus