Строка для плавания в Objective-C для набора карт - PullRequest
0 голосов
/ 14 февраля 2010

Я пытаюсь передать некоторые значения широты / долготы из документа JSON в iPhone Map Kit, чтобы затем отобразить точки на карте. Значения поступают из NSArray:

CGFloat goLat = [valfields objectForKey: @"geo_lat"];
CGFloat golong = [valfields objectForKey: @"geo_long"];


CLLocationCoordinate2D newCoord = {golat, golong}; etc...

Но я получаю ошибку "несовместимые типы".

Полагаю, мне нужно преобразовать строковые значения из моего массива в CGFloat? Но я просто уверен.

Есть мысли?

Спасибо

г

1 Ответ

2 голосов
/ 14 февраля 2010

«Приведение» - это не то, что вам нужно, но если ваш массив (фактически из вашего кода он выглядит как словарь) содержит строки, то да, вам нужно преобразовать их в числовой формат.Попробуйте:

CGFloat goLat = [[valfields objectForKey: @"geo_lat"] floatValue];

Из документации NSString :

floatValue

Возвращает значение с плавающей точкой получателятекст в виде float.

- (float)floatValue

Возвращаемое значение
Значение с плавающей запятой текста получателя в виде float, пропуская пробелв начале строки.Возвращает HUGE_VAL или –HUGE_VAL при переполнении, 0.0 при переполнении.Также возвращает 0.0, если получатель не начинается с действительного текстового представления числа с плавающей запятой.

Кроме того, NSString имеет метод -doubleValue.Существует также класс NSNumber, который может быть лучше, чем строки для ваших данных.

...