据我所知,在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];
如果之前已经声明了一个 int 类型的 varMoney,我的问题是,是否有比将其放入 NSNumber 中更好的方式来存储“int”类型的值在字典中?
谢谢!
编辑:04/25/13
我提出这个问题已经有很长时间了。对于未来会遇到此类问题的人来说,目前有更简单的方法可以使用苹果 LLVM 编译器 4.0(ARC)来实现。
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@1337 forKey:@"1"];
那就这样了,使用 @1337 语法可以快速创建 NSNumber 对象。它可以与变量一起使用,因此我的示例可以变成这样:[dictionary setObject:@(varMoney) forKey:@"3"];
或者dictionary[@"mykey"] = @1337;
更简单。