2011-05-06 2 views
0

NSDictionary에 포함 된 값을 복구하려고합니다. 내가 이렇게 :NSDictionary에서 값을 복원

MyCommon *pCommon = [MyCommon Singleton]; 
NSArray *result = pCommon.res; //res is define and retain in common.m. This is the array. 
NSDictionary *dataItem = [result objectAtIndex:????]; 

나는이를 교체 넣을 수 있습니다 모르겠어요 ????

감사

+0

어떤 색인이 사전입니까? – kubi

+0

'result'는 NSDictionary의 배열입니까? – Rod

+0

더 자세한 정보가 필요하십니까? 여기서 성취하려는 것을보기가 어렵습니다. objectAtIndex는 NSUInteger 값을 취합니다. –

답변

2

다른 언어와 달리 Objective-C는 배열과 사전을 구분합니다.

배열은 숫자로 인덱싱 된 모음입니다. 사전은 객체 (일반적으로 문자열이지만 다른 유형 일 수 있음)로 색인화 된 모음입니다.

Objective-C는 가변 배열과 불변 배열 및 사전을 구분합니다. NSArrayNSDictionary은 생성 된 후에 수정할 수 없습니다. 컬렉션에 개체를 추가해야하는 경우 대신 NSMutableArrayNSMutableDictionary을 사용하십시오.

NSArray * myArray = [[NSArray alloc] initWithObjects: @"text1", @"text2", @"text3", nil]; 
// you can then access a member by using: 
NSString * text = [myArray objectAtIndex: 0]; 

NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init]; 
// add an object 
[myDict setObject:@"text1" forKey:@"key1"]; 
[myDict setObject:@"text2" forKey:@"key2"]; 
// you can retrieve objects using: 
text = [myDict objectForKey: @"key1"]; 

[myArray release]; 
[myDict release]; 
0

음, result 그래서 그냥 관심있는 요소의 인덱스를 넣어 NSArray 아닌 NSDictionary입니다. 배열은 0에서 정수의 인덱스를 붙일 수 있습니다.

이 경우 귀하의 resultNSDictionary 아닌 NSArray입니다, 대신 objectAtIndex:objectForKey: 방법을 사용합니다.

관련 문제