2012-01-24 2 views

답변

15

당신은 NSDictionary객체의 모든 유형을 넣을 수 있습니다. 따라서 @"fred"은 정상이지만 1은 정수가 아니기 때문에 개체가 아닙니다. 당신이 사전에 숫자를 넣어하려는 경우, NSNumber에 포장 :

NSDictionary *header = { @"title": @"fred", @"count": @1 }; 
+2

흥미 롭습니다. 저는 C#에서 모든 것이 대상이되는 데 익숙합니다. 감사. – ChrisP

0

당신이 가지고있는 방식대로. 숫자 1은 원시이며 NSArray 객체는 객체 만 저장할 수 있습니다. "1"에 대한 NSNumber를 만든 다음 저장합니다.

0

NSDictionary 단지 그것이 대물-C 객체를 포함 할 수있다 (예 NSStringNSArray과 같이), 이는 int, float 또는 char* 같은 기본 유형을 포함 할 수 없다. 이러한 제약 조건을 감안할 때 이기종 사전은 완벽하게 합법적입니다. 당신이 키 또는 값과 같은 숫자 1을 포함 할 경우

, 당신은 NSNumber로 포장해야합니다

NSDictionary *header=[[NSDictionary alloc] initWithObjectsAndKeys: 
    @"fred", @"title", 
    [NSNumber numberWithInt:1], @"count", 
    nil]; 
0

유일한 요구 사항은 그 객체 수입니다. 코드에서 객체를 올바르게 처리하는 것은 사용자의 몫이지만, 키에 따라 유형을 추적 할 수 있습니다.

1이 (가) 객체가 아닙니다. 사전에 숫자를 넣으려면 NSNumber로 변환 할 수 있습니다.

관련 문제