Как сказал @Rayfleck, объект в массиве может быть не таким, как вы ожидаете. Используйте отладчик или NSLog()
, чтобы узнать, что это за объект на самом деле.
Еще одна возможность, у вас может быть ошибка управления памятью где-то. ARC включен?
И, наконец, это может быть проблема безопасности потока. В таком случае, удачи в поиске! На самом деле нет простого способа отследить проблемы с многопоточностью, кроме как прочитать каждую строку кода и попытаться найти ошибку.
EDIT:
У вас есть эта строка кода:
[holdingArray addObject:appDelegate.dealerDataGlobalArray];
Похоже, вы добавляете объект массива в массив holdingArray
. Объекты массива возвращают другой массив, когда вы отправляете им valueForKey:
(ищите valueForKey в документации для NSArray ...).
В любом случае, объект массива не отвечает на floatValue
. Только NSString
и NSNumber
объекты отвечают на floatValue
.
Вы должны NSLog()
эти объекты, потому что я думаю, что они не те, что вы ожидаете от них:
NSLog(@"%@", [self.holdingArray objectAtIndex:k]);
NSLog(@"%@", [[self.holdingArray objectAtIndex:k] valueForKey:@"latitude"]);