2014-01-14 2 views
-1

어떻게 '항목 0'의 '선택 사항'을 배열로 추출합니까? enter image description here이 plist 사전에서 어떻게 배열을 추출합니까?

현재 배열을 인쇄하면 null이 반환됩니다.

NSDictionary *dataDictionary = [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"pollData" ofType:@"plist"]]; 

    NSMutableArray *arrayOfChoices = [[dataDictionary objectForKey:@"Item 0"] objectForKey:@"choices"]; 
    self.dataArray = arrayOfChoices; 

    NSLog(@"array: %@", self.dataArray); 
+1

글쎄, 그것은 배열이 아닙니다. 더 중요한 것은'dataDictionary'는 사전이 아닙니다. 루트 객체는 배열입니다. –

+0

죄송합니다. 하지만 배열로 변경하고 여전히 작동하지 않습니다. – jsky

+0

무엇을 배열로 변경 했습니까? –

답변

3

루트 개체는 사전이 아니라 배열입니다. @"choices" 설계되어있는 그 내부의 개체이기 때문에 그 배열의 인덱스 0

NSArray * pollData = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"pollData" ofType:@"plist"]]; 

객체는 사전이다.

plists에서 직렬화되지 않은 객체는 절대로 변경 될 수 없습니다. 가변적 인 사전을 원하면 변경 가능한 사본을 만들어야합니다.

관련 문제