据我了解,在 Objective-C 中,您只能将对象放入字典中。因此,如果我要创建一个字典,它必须包含所有对象。这意味着我需要将我的整数作为 NSNumber 放入,对吗?
苏...
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];
其中 varMoney 是前面已声明的 int。我的问题是,有没有更好的方法将“int”存储在字典中而不是将其放入 NSNumber?
谢谢!
编辑:2013 年 4 月 25 日
我已经很久没有问这个问题了。对于将来偶然发现它的人来说,使用 Apple LLVM Compiler 4.0 可以更轻松地完成此操作,这在 Xcode 中已经默认使用了一段时间。(弧)
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@1337 forKey:@"1"];
就是这样,使用@1337 语法快速创建 NSNumber 对象。与变量一起使用,所以我的上面可以变成:
[dictionary setObject:@(varMoney) forKey:@"3"];
或者
dictionary[@"mykey"] = @1337;
更简单。