领域对象返回 nil (Swift)

2024-05-03

我有一个自定义多边形对象,因此我可以将地图叠加保存到领域。我能够成功创建这个对象,但是当我想检索 var 多边形对象时,它返回 nil。当我打印多边形对象时,它可以很好地打印出所有数据。

这是打印内容的示例。

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;
            }, . . . 
        );
    };
}

我的从领域加载数据的函数

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
}

The String, Double and Object你的属性Object子类需要用以下方式声明dynamic修饰符允许 Realm 覆盖属性的 getter 和 setter。如果没有这个,Swift 编译器将直接访问对象的实例变量,这不会为 Realm 提供任何从 Realm 文件读取或写入数据的机会。参见领域模型属性备忘单 https://realm.io/docs/swift/latest/#cheatsheet快速概述如何声明每种受支持类型的属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

领域对象返回 nil (Swift) 的相关文章

随机推荐

  • 如何续订过期的 ClickOnce 证书?

    我需要对一年多没有碰过的 ClickOnce 应用程序进行一些更改 因此证书已过期 我读过 使用新证书发布将使应用程序失败 因为它将使用不同的密钥进行签名 因此我认为我需要使用相同的证书但不知道如何更新它 如果您正在寻求快速解决方案 那么您
  • 如何将数字 010 转换为字符串“010”

    在控制台中执行一些随机表达式时 我发现 010 返回8 甚至 011 0100 都通过考虑八进制数字系统返回结果 如果我想转换一个数字 我该怎么做010到一个字符串 010 不仅为了010但对于每个相似的数字 我设法找到了一种类似的解释he
  • FindObjectOfType 返回 null

    我遇到的问题是我捡起一个掉落的物品 为枪添加弹药 使用所有方法和变量构建了一个 Gun 类 构建了一个从 Gun 类派生的 Rifle 类 步枪工作完美 没有任何问题 我现在添加一个 拾取 系统 其中 x 数量的敌人会掉落拾取 这是要拾取的
  • 使用 WIA 检测所有可用的扫描仪分辨率

    如何使用 WIA 2 0 以编程方式检测指定扫描仪的所有可用分辨率 以 dpi 为单位 支持的页面大小怎么样 有任何想法吗 伪代码 假设您有设备信息 请连接到它 var device deviceInfo Connect 如果设备不为空 那
  • Postgres 检查文本数组中的约束以确保值的有效性

    我想创建类似的东西 CHECK ALL scopes IN read write delete update scopes这是表中的一个字段text 我想确保该数组中的所有值都是上面的值之一 对此有何意见 是否有可能通过以下方式获取这些值S
  • 如何定义与 Backbone 一起使用的 jade 模板

    我需要使用模板来渲染每个 ItemView var ItemView Backbone View extend className item template template itemTemplate html initialize fu
  • 如果新块大小小于初始块大小,我是否应该强制重新分配检查?

    在这种情况下 realloc 会失败吗 int a NULL a calloc 100 sizeof a printf 1 ptr d n a a realloc a 50 sizeof a printf 2 ptr d n a if a
  • Keycloak 重定向 URI 提供 https://localhost 而不是 http://localhost

    我正在尝试在 Keycloak 上验证 Cordova Android 应用程序 我之前提出过一个关于它的问题 但我在这里将其简化为仅提供要点 因为我在过去 2 3 天中发现了很多东西 Cordova Android 应用程序中的网页不可用
  • 在 JSFiddle 上运行的简单 AngularJS

    如何用以下代码制作 jsfiddle div ul li num li ul div
  • 主表节点缺失

    我已经安装了 Microsoft SQL Server 2012 Express 当我启动 Management Studio 时 我无法查看系统数据库上的任何 表节点 这是一个错误吗 这是一个错误 如以下链接所述 http connect
  • Laravel 4 - 工匠错误 SQLSTATE[42000]

    我正在尝试为我的用户表创建一个新的迁移 我有以下架构 Schema create users function t t gt increments id t gt string username 16 t gt string passwor
  • 非时间戳列上的 Spark 结构化流窗口

    我收到以下形式的数据流 id timestamp val xxx 1 12 15 25 50 1 2 12 15 25 30 1 3 12 15 26 30 2 4 12 15 27 50 2 5 12 15 27 30 3 6 12 15
  • 从字典列表中删除具有重复值的字典

    我有一个字典列表如下 ppm error 5 441115144810845e 07 key Y7 obs ion 1054 5045550349998 ppm error 2 3119997582222951e 07 key Y9 obs
  • C++ 中的显式构造函数调用

    1 以下语句的返回值是多少 obj classX classX 2 关于C 中构造函数的另一个问题 classX 创建一个对象 编译器生成的扩展代码是什么 构造函数不返回值 就像函数返回一样void 对于第二个问题 编译器将调用构造函数 然
  • 如何正确模拟 i18next

    这是我的函数和测试的简化版本 虽然我嘲笑了 useTranslation 我收到以下错误 您正在传递一个未定义的模块 请检查您的对象 传递给 i18next use 7 i18n 8 use Backend gt 9 use initRea
  • 如何通过 Robobrowser 使用代理

    我正在与http robobrowser readthedocs org en latest readme html http robobrowser readthedocs org en latest readme html 一个基于 b
  • `success` 方法已被弃用。使用“then”方法代替

    您好 我是 Vue 世界的新手 这是我收到的警告 成功方法已被弃用 请改用 then 方法 这是代码 apiURL api movies new Vue el app data movies ready function this getM
  • SwiftUI - 方向更改后,NavigationView 标题和后退按钮被夹在状态栏下

    每当我将设备旋转到横向并再次返回时 顶部NavigationView 包括标题和后退按钮 被剪切在状态栏下方 最小可重现示例 struct ContentView View var body some View NavigationView
  • 如何使用 IPython 的事后 %debug 启动 pudb?

    I just 开始了 https documen tician de pudb starting html using breakpoint and pudb 这太棒了 现在我该如何制作 IPython debug神奇的启动pudb 注 p
  • 领域对象返回 nil (Swift)

    我有一个自定义多边形对象 因此我可以将地图叠加保存到领域 我能够成功创建这个对象 但是当我想检索 var 多边形对象时 它返回 nil 当我打印多边形对象时 它可以很好地打印出所有数据 这是打印内容的示例 CustomPolygon nam