gpt4 book ai didi

ios - RealmSwift LinkingObjects(fromType : Class. self, property: "property") 返回 nil

转载 作者:行者123 更新时间:2023-11-29 01:00:38 25 4
gpt4 key购买 nike

When I try to access var `inspection` in code block "Code from version 0.100.0" it returns nil

Code from version 0.100.0

class DLocation: DBase{
dynamic var audioFile: String? = nil
dynamic var imageFile: String? = nil

let inspection = LinkingObjects(fromType: DInspection.self, property: "locations").first
}

Code from v0.98

class DLocation: DBase{
dynamic var audioFile: String? = nil
dynamic var imageFile: String? = nil

var inspection: DInspection!{
return linkingObjects(DInspection.self, forProperty: "locations").first!
}
}


class DBase: Object{
dynamic var id:Int = 0
dynamic var serverId: String! = "-1"
dynamic var updatedAt: NSDate = NSDate()
}

当我使用代码 linkingObjects(DInspection.self, forProperty: "locations") 时,我得到了想要的结果,但 XCode 生成了一个警告“已弃用”。

Question

我应该坚持使用已弃用的代码吗?或者我在这里做错了什么?

Realm 版本:V (0.100.0)

Xcode 版本:V7.2

iOS/OSX版本:OS X El Captain 10.11.4(15E65)

依赖管理器+版本:cocoapods v 0.39.0

最佳答案

Github 上的 Realm 支持为我提供了这个解决方案。

目前 LinkingObjects 只能用于初始化 LinkingObjects 类型的属性。在您提供的代码中,您试图使用它来计算 DInspection 类型属性的默认值。 LinkingObjects 实例直到 Swift 对象的初始化程序运行后才知道它包含指向哪个对象的链接,此时检查已初始化为 nil。

class DLocation: DBase{
dynamic var audioFile: String? = nil
dynamic var imageFile: String? = nil

var inspection: DInspection { return inspections.first! }
private let inspections = LinkingObjects(fromType: DInspection.self, property: "locations")
}

关于ios - RealmSwift LinkingObjects(fromType : Class. self, property: "property") 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com