I have a custom polygon object so I can save map overlays to Realm. I'm able to create this objects successfully, but when I want to retrieve the var polygon object it returns nil. When I print the polygon object, it prints it out fine, with all the data.
This is a sample of what it prints out.
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; }, . . . ); }; } My Function for loading data from Realm
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) } } My Classes
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 }