如何从浮动字典中访问浮点数?

时间:2010-12-08 15:02:11

标签: objective-c

我有一个包含两个词典数组的属性列表(Data.plist)。每个字典都填充了键名(Factor 1Factor 2等)和浮点数(0.871.15等)。我正在尝试访问存储在字典中的数字。首先我使用以下方法加载字典:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
NSArray *plistData = [[NSArray arrayWithContentsOfFile:finalPath] retain];
NSDictionary *dictionaryOne = [plistData objectAtIndex:0];

实际访问存储的数字是我遇到问题的地方:

Float32 conversionFactor = [scyToLCMMen objectForKey:"Factor 50"];

我收到错误:“incompatible types in initialization”。我究竟做错了什么?它不是Float32吗?

3 个答案:

答案 0 :(得分:6)

Objective-c容器只能容纳obj-c类型,所以你得到的东西肯定不是浮点数。您可能拥有的是NSNumber对象,您需要从中“提取”普通浮点值:

Float32 conversionFactor = [[scyToLCMMen objectForKey:"Factor 50"] floatValue];

答案 1 :(得分:0)

NSNumber *conversionFactor = [dictionaryOne valueForKey:@"Factor 50"];
float factor = [conversionFactor floatValue];

这就是我要做的事情

答案 2 :(得分:0)

该值可能是NSNumber的实例。

Float32 conversionFactor = [[scyToLCMMen objectForKey:"Factor 50"] floatValue];