Bonjour à tous,
J’essaie de ne pas trop solliciter le forum, en faisant mes recherches moi-même, mais là, j’avoue que je suis un peu perdu et ne sais plus dans quelle direction chercher.
Je crée une application qui recense l’adresse d’objets et les place sur une carte en utilisant MapKit. Chaque objet a donc une localisation. J’ai créé une struct Place.
struct Place: Identifiable, Equatable {
var id = UUID().uuidString
var placemark: CLPlacemark
}
J’ai aussi créé une class RealmPlace qui hérite de Object pour préparer les données des objets à envoyer en base de données avec Realm.
Or ma struct a une instance placemark: CLPlacemark
var placemark: CLPlacemark?
Sauf que Realm n’accepte pas d’enregistrer des variables de type CLPlacemark (c’eut été trop beau !). J’aimerais donc la transformer en Data. Et c’est là que je coince…
Par conséquent, j’ai essayé de découper mon CLPlacemark avec ses sous-éléments compatibles Realm.
(Ne vous préoccupez pas des underscores_, c’est juste que j’ai protégé mes données avec des var get set. Et c’est là aussi que j’enregistre dans Realm)
class RealmPlace : Object {
var placemark: CLPlacemark?
@objc dynamic var _id = UUID().uuidString
@objc private dynamic var _latitude = 0.0
@objc private dynamic var _longitude = 0.0
@objc private dynamic var _country = ""
@objc private dynamic var _locality = ""
@objc private dynamic var _name = ""
@objc private dynamic var _subThoroughfare = ""
@objc private dynamic var _thoroughfare = ""
convenience init(place: Place) {
self.init()
self.id = place.id
self.latitude = (place.placemark.location?.coordinate.latitude)!
self.longitude = (place.placemark.location?.coordinate.longitude)!
self.subThoroughfare = place.placemark.subThoroughfare ?? ""
self.thoroughfare = place.placemark.thoroughfare ?? ""
self.name = place.placemark.name ?? ""
self.locality = place.placemark.locality ?? ""
self.country = place.placemark.country ?? ""
}
J’avais pour idée d’ensuite recréer un CLPlacemark à replacer dans mon objet Place et à utiliser dans mon application. Mais impossible de le recréer, je bute sur un obstacle, c’est là que je coince !
L’idée, c’était de terminer ma reconstruction d’objet Place comme suit:
var placeObject: Place {
return Place(id: self.id, placemark: createPlacemark())
}
J’espère avoir été suffisamment clair.
Peut-être suis-je parti dans la mauvaise direction !?!
Si quelqu’un a une idée pour enregistrer mes CLPlacemark avec Realm, je suis preneur.
Merci d’avoir pris le temps de me lire.
Bon week-end les Giraffes