Ho un oggetto poligono personalizzato in modo da poter salvare gli overlay delle mappe su Reame. Sono in grado di creare questi oggetti con successo, ma quando voglio recuperare l'oggetto poligono var restituisce nil. Quando stampo l'oggetto poligono, lo stampa bene, con tutti i dati.Oggetto reame restituito nil (Swift)
Questo è un esempio di ciò che viene stampato.
CustomPolygon {
name = Polygon1;
id = p1;
polygon = Polygon {
coordinates = RLMArray <0x7f928ef36230> (
[0] Coordinate {
latitude = -36.914167;
longitude = 174.904722;
},
[1] Coordinate {
latitude = -36.9325;
longitude = 174.957222;
}, . . .
);
};
}
mia funzione per il caricamento dei dati dal Regno
func loadOverlaysFromRealm(){
do {
let realm = try Realm()
let polygons = realm.objects(CustomPolygon)
for p in polygons {
var coordinates = [CLLocationCoordinate2D]()
print(p) // !!!!! prints out what is above
print(p.polygon) // !!!!! Returns nil.
if let coordinateList = p.polygon?.coordinates as? List<Coordinate> {
for coordinate in coordinateList {
coordinates.append(CLLocationCoordinate2DMake(coordinate.latitude, coordinate.longitude))
}
}
print(coordinates) // prints "[]"
let polygon = MKPolygon(coordinates: &coordinates, count: coordinates.count)
self.map.addOverlay(polygon)
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
mie classi
class CustomPolygon: Object {
var name:String = ""
var id:String = ""
var polygon:Polygon? = nil
}
class Polygon: Object {
var coordinates = List<Coordinate>()
}
class Coordinate: Object {
var latitude:Double = 0.0
var longitude:Double = 0.0
}