2013-08-16 2 views
0

NSDictionary에 여러 문자열이 포함 된 배열이 여러 개 있습니다. 모든 배열을 하나의 배열로 배열에 넣고 싶습니다. 한 번에 모든 문자열을 수신하려면 어떻게해야합니까?NSArray를 사용하여 NSDictionary의 값을 사전 순 정렬 할 수 있습니까?

NSString *path = [[NSBundle mainBundle] pathForResource:@"firstTableView" ofType:@"plist"]; 

self.firstTableView = [NSDictionary dictionaryWithContentsOfFile:path]; 

효과 :이 나에게 NSLog의 목록을 제공하지만, 알파벳 순서가 아닌

NSMutableArray *mutarr = [[NSMutableArray alloc] initWithObjects:[self.firstTableView allValues], nil]; 
NSArray *mySorted = [[NSArray alloc]init]; 
mySorted = [mutarr sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

NSLog(@"First table view values: %@", mySorted); 

참고 : self.firsttableview이 같이있는 NSDictionary이다 나는 이것을 시도했습니다.

답변

2

사전에 allValues에 의해 반환 된 배열 인 하나의 객체로 mutarr을 초기화하고 있습니다. 대신 다음을 시도하십시오.

NSMutableArray* mutarr = [NSMutableArray array]; 

for (NSArray* array in self.firstTableView.allValues) { 
    [mutarr addObjectsFromArray:array]; 
} 
+0

설명을 기반으로하면 배열 배열이되며 문자열 배열이 아닙니다. – Wain

+0

감사합니다. 편집 됨. –

+0

고마워요. 저에게 도움이되었습니다. –

0

귀하의 코드는 mutarr이 배열 배열을 포함하고, 문자열 배열이 아닌 배열임을 의미합니다. 사전에서 배열 값을 반복하고 각각의 항목을 mutarr에 추가하여 정렬 할 수있는 문자열 배열로 만들어야합니다.

0

NSDictionary 값이 배열 인 경우 문자열 대신 배열을 정렬하려고합니다. [self.firstTableView allValues]를 반복 실행하는 for 루프를 작성한 다음 해당 배열의 모든 값을 기본 배열에 추가하여 배열을 정렬하십시오.

관련 문제