【发布时间】:2010-12-14 20:57:40
【问题描述】:
据我了解,在 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;
更简单。
【问题讨论】:
-
还可以做dictionary[@"1"] = @1337;
标签: iphone objective-c dictionary integer nsnumber