2010-02-23 8 views
14

NSDictionary에서 정수로 Object를 설정하려고 할 때 항상 메시지없이 (콘솔에는 아무 것도 표시되지 않는) 프로그램이 충돌합니다. 이 코드에서 잘못된 점은 무엇입니까? :개체로 NSDictionary를 만들 때 응용 프로그램이 중단됩니다.

NSString *string = @"foo"; 
int number = 1; 

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
         string, @"bla1", number, @"bla2",nil]; 

답변

39

사용 NSNumber 대신 int 원시의 :

현대 목표 - C :

NSString *string = @"foo"; 
NSNumber *number = @1; 

NSDictionary *params = @{@"bla1": string, @"bla2": number}; 

올드 스타일 : 당신이 객체를 저장할 필요가 사전에

NSString *string = @"foo"; 
NSNumber *number = [NSNumber numberWithInt:1]; 

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
        string, @"bla1", number, @"bla2",nil]; 
+0

감사합니다. – Flocked

+2

대부분의 Cocoa 컬렉션 클래스에는 Objective-C 오브젝트 만 저장할 수 있으므로 원시 타입은 저장할 수 없습니다. –

4

, int, char 등의 기본 유형이 아닙니다.

관련 문제