Swift 领域 - "Value of type 'Results' has no member"

Swift Realm - "Value of type 'Results' has no member"

我正在尝试从 RealmDB 获取数据并按 ID 过滤。正如 Realm 文档所建议的那样 (https://realm.io/docs/swift/latest/#queries) 我正在使用:

    let realm = try! Realm()
    let Result = realm.objects(DBName.self).filter("ID == %@", id) 

XCode 在这两行中没有显示任何警告或错误,但是当尝试通过这样做来使用结果时:

    print(Result.ID)

即使在数据库中有 ID 字段也会出现错误: Value of type 'Results<DBName>' has no member 'ID'。而且我也无法访问任何其他字段。

realm.objects(DBName.self).filter("ID == %@", id)

这returns IDid 的所有DBName 个对象在Results[doc] 中。因此,返回值是一个对象列表。这就是错误显示 'Results<DBName>' has no member 'ID'.

的原因

如果您 100% 确定其中有一个对象,您可以尝试以这种方式检索第一个元素。 (对于生产,您应该始终使用 guard 语句来防止崩溃,正如 Jay 在评论部分中所建议的那样。)

realm.objects(DBName.self).filter("ID == %@", id).first!

或者,如果您的 ID 是主键,您可以这样做。

realm.object(ofType: DBName.self, forPrimaryKey: id)