如何从字典中获取双倍价值?

时间:2010-01-15 23:15:22

标签: objective-c

我正试图从字典中获取双倍值。我怎样才能在objective-c中实现这个目标?

2 个答案:

答案 0 :(得分:11)

Dave's response对您的previous question也适用于此。要在NSDictionary中存储double值,您需要将其装入NSNumber。

要在字典中设置double值,您可以使用如下代码:

[someDict setObject:[NSNumber numberWithDouble:yourDouble] forKey:@"yourDouble"];

并使用以下内容阅读:

double isTrue = [[someDict objectForKey:@"yourDouble"] doubleValue];

答案 1 :(得分:1)

Brad Larson的回答是完全正确的。要详细说明这一点,您必须明确地“包装”非对象编号类型(例如,intunsigned intdoublefloat,{{ 1}}等等,在处理任何需要对象的东西时进入BOOL

然而,另一方面,Objective-C中的一些机制,如键值编码(KVC),将自动为您进行此包装。

例如,如果NSNumber类型@property名为int,并且您调用intProperty NSObject (NSKeyValueCoding)方法valueForKey: },返回结果为[ someObject valueForKey:@"intProperty" ],而不是NSNumber *

坦率地说,我不关心在Objective-C中在对象和非对象类型(特别是intstruct s!)之间进行切换。我宁愿将所有东西视为一个对象,但也许这只是我。 :)