Моя основная проблема заключается в хранении данных, которые не поддерживаются Core Data.У меня уже есть свойство CLLocation, хранящееся как преобразуемый атрибут.Я думаю, что правильный подход - объявить временное свойство координат.Однако я продолжаю получать ошибки EXC_BAD_ACCESS.
РЕДАКТИРОВАТЬ:
Мой текущий подкласс имеет следующий интерфейс:
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface Event : NSManagedObject {
}
@property (nonatomic, retain) NSString* title;
@property (nonatomic, retain) NSDate* timeStamp;
@property (nonatomic, retain) CLLocation *location;
@end
Поэтому мне нужно добавить
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
и
- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;
в соответствии с протоколом.(setCoordinate является необязательным, но он мне нужен, если я хочу, чтобы аннотация перетаскивалась)
В базовых данных свойство Location может быть преобразовано.и я использую @dynamic в реализации для генерации методов доступа.Я использую это свойство во всем коде, поэтому я не хочу его сохранять.
Я думаю, что лучший способ добиться этого - определить мое свойство координат в основных данных как временное, но яопределенно что-то не так с реализацией.
- (CLLocationCoordinate2D)coordinate {
CLLocationCoordinate2D cor = CLLocationCoordinate2DMake(self.location.coordinate.latitude,
self.location.coordinate.longitude);
return cor;
}
- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate {
CLLocation *newLoc = [[CLLocation alloc] initWithLatitude:newCoordinate.latitude
longitude:newCoordinate.longitude];
[self.location release];
self.location = newLoc;
}
Я пробовал несколько способов, но это самый последний.
Редактировать 2: EXC_BAD_ACCESS в:
_kvcPropertysPrimitiveSetters