这是它打印出来的样本.
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; },. . . ); };}
我的函数从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) }}
我的课程
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}需要使用动态修饰符声明Object子类的String,Double和Object属性,以允许Realm覆盖属性的getter和setter.如果没有这个,Swift编译器将直接访问对象的实例变量,这不会为Realm提供从Realm文件读取或写入数据的任何机会.有关如何声明每种受支持类型的属性的快速概述,请参阅Realm的 model property cheatsheet. 总结
以上是内存溢出为你收集整理的数组 – Realm对象返回nil(Swift)全部内容,希望文章能够帮你解决数组 – Realm对象返回nil(Swift)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)