Rozumiem, że w Objective-C obiekty można umieszczać tylko w słownikach. Gdybym miał stworzyć słownik, musiałby mieć wszystkie obiekty. Oznacza to, że muszę umieścić moje ints jako NSNumber, prawda?Przechowywanie ints w słowniku
soo ...
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];
Gdzie varMoney jest int, który został ogłoszony wcześniej. Moje pytanie brzmi, czy istnieje lepszy sposób na zapisanie "int" w słowniku niż umieszczenie go w NSNumber?
Dzięki!
Edit: 04/25/13
To było dawno nie zadał to pytanie. Dla osób, które natkną się na to w przyszłości, są łatwiejsze sposoby, aby to zrobić z Apple LLVM Compiler 4.0, który był domyślnie w Xcode. (ARC)
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@1337 forKey:@"1"];
To jest to, użyj @ 1337 składni do szybkiego tworzenia obiektów NSNumber. Współpracuje ze zmiennych, więc moja powyżej może stać:
[dictionary setObject:@(varMoney) forKey:@"3"];
lub
dictionary[@"mykey"] = @1337;
prostsze.
można też zrobić słownika [@ "1"] = @ 1337; – JuJoDi