Чтобы создать CLLocation, вам нужны и широта, и долгота одновременно. Более того, координаты для CLLocation (например, CLLocationCoordinate2D) не являются NSNumbers, а являются двойными числами с плавающей запятой, так что это может подорвать соответствие значения ключа при отображении таким образом, потому что числа с плавающей точкой не являются объектами.
Чаще всего люди сохраняют широту и долготу в классе как NSNumbers, а затем строят координату CLLocationCoordinate2D по требованию после того, как объект класса создан / заполнен.
То, что вы могли бы сделать, если бы вы были так склонны, - это использовать метод willMapData: делегат для отслеживания поступающих данных, чтобы вручную заполнить CLLocation ... но для меня это излишне и требует слишком много накладных расходов.
РЕДАКТИРОВАТЬ: Добавление этого, потому что комментарии не форматируют свойство кода ...
Или вы можете поместить что-то подобное в реализацию и интерфейс вашего класса объектов ...
@property (nonatomic,readonly) CLLocationCoordinate2D coordinate;
- (CLLocationCoordinate2D)coordinate {
CLLocationDegrees lat = [self.latitude doubleValue];
CLLocationDegrees lon = [self.longitude doubleValue];
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(lat, lon);
if (NO == CLLocationCoordinate2DIsValid(coord))
NSLog(@"Invalid Centroid: lat=%lf lon=%lf", lat, lon);
return coord;
}