Как получить доступ к поплавкам из словаря поплавков? - PullRequest
2 голосов
/ 08 декабря 2010

У меня есть список свойств (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?

Ответы [ 3 ]

8 голосов
/ 08 декабря 2010

Контейнеры Objective-c могут содержать только типы obj-c, так что то, что вы получите, не является плавающей точкой. Вероятно, у вас есть объект NSNumber, и вам нужно «извлечь» из него значение с плавающей точкой:

Float32 conversionFactor = [[scyToLCMMen objectForKey:"Factor 50"] floatValue];
0 голосов
/ 08 декабря 2010

Значение, вероятно, является экземпляром NSNumber .

Float32 conversionFactor = [[scyToLCMMen objectForKey:"Factor 50"] floatValue];
0 голосов
/ 08 декабря 2010
NSNumber *conversionFactor = [dictionaryOne valueForKey:@"Factor 50"];
float factor = [conversionFactor floatValue];

Это то, что я бы сделал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...