2009-11-10 5 views
13

Objective-C에서는 Object를 사전에만 넣을 수 있습니다. 사전을 만들려면 모든 객체가 있어야합니다. 이것은 NSNumber처럼 int를 넣어야 함을 의미합니다. varMoney 이전에 선언 된 int 형입니다사전에 정수 저장

김 ...

NSNumber *testNum = [NSNumber numberWithInt:varMoney]; 


NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
[dictionary setObject:@"OMG, Object 1!!!!" forKey:@"1"]; 
[dictionary setObject:@"Number two!" forKey:@"2"]; 
[dictionary setObject:testNum forKey:@"3"]; 


NSNumber *retrieved = [dictionary objectForKey:@"3"]; 
int newVarMoney = [retrieved intValue]; 

. 내 질문은 NSNumber에 넣는 것보다 사전에 "int"를 저장하는 더 좋은 방법이 있습니까?

감사합니다.

편집 : 나는이 질문을 이후 오랜 시간이되었습니다 04/25/13

. 미래에 문제가있는 사람들을 위해, Xcode에서 기본으로 사용되는 Apple LLVM Compiler 4.0을 사용하면 더 쉬운 방법이 있습니다. (ARC)

@ 1337 구문을 사용하면 NSNumber 개체를 빠르게 만들 수 있습니다. 변수와 함께 작동, 그래서 내 위가 될 수 :

[dictionary setObject:@(varMoney) forKey:@"3"]; 

또는

dictionary[@"mykey"] = @1337; 

간단한.

+2

또한 사전을 할 수 있습니다 [@ "1"] = @ 1337; – JuJoDi

답변

18

정확합니다. NSNumber이이 상황을 처리하는 일반적인 방법입니다. NSValue 또는 NSDecimalNumber을 사용할 수도 있습니다.

+1

괜찮 았어, 나는 거기 있다고 생각하지 않았다. 그래서 이제는 내가 알아. 고마워! –

0

죄송하지만 :(나는 알고있다되지 않음까지한다. 그 이유는 정수되지 개체 및 NSDictionary만을 저장하는 객체 있다는 것. 당신은 코어 재단 (CFDictionaries)를 사용하여 다시 떨어질 준비가되어있는 경우

+0

그건 괜찮아, 나는 거기 있다고 생각하지 않았다. 그래서 지금 나는 알고있다. 고맙습니다! –

5

당신은 당신이 좋아하는 무엇이든을 저장할 수 있습니다. 나는 확실히 내가 임의의 무효 * 값을 넣어되는 사전을했습니다.

을 당신은 좀 더 배관을 할 필요가 있지만,별로, 그 모든 기록.