У вас есть два варианта:
Если ваш класс Annotation
соответствует протоколу NSCoding
(или если вы хотите написать NSValueTransformer
для преобразования своего пользовательскогоПрименительно к экземпляру NSData
вы можете использовать преобразуемый атрибут в вашей сущности Core Data. Core Data будет использовать назначенный NSValueTransformer
для автоматической сериализации / десериализации вашего Annotation
экземпляра для вас.*
Вы можете создать сущность Annotation
в своей модели базовых данных. Вам нужно будет написать свой собственный код, чтобы присвоить сущности CLLocationCoordinate2D
. Возможно, вы создадите постоянную поддержку с использованием двух double
s.а затем напишите установщики / средства доступа для CLLocationCoordinate2D
.
Преимущество (1) состоит в том, что это проще (если ваш класс соответствует NSCoding
). Преимущество (2) заключается в том, что вы можете выполнять запросы к данным внутри объекта, даже если используете постоянные хранилища SQLite. Если вы используете (1), данные непрозрачны для механизма запросов SQLite, поэтому вы не сможете выполнять запросы к ним с помощьюБэкэнд SQLite.