我有一个包含两个词典数组的属性列表(Data.plist
)。每个字典都填充了键名(Factor 1
,Factor 2
等)和浮点数(0.87
,1.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
吗?
答案 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];