【发布时间】:2019-11-20 18:58:27
【问题描述】:
在 RealmSwift 3.21.0 中,我在 Realm 的 Object.swift 文件中遇到了这个崩溃,其中 name: "services" 和 child = { value: 0x0, label: "services" }:
private static func getOptionalPropertyMetadata(
for child: Mirror.Child,
at index: Int
) -> RLMSwiftPropertyMetadata? {
guard let name = child.label else {
return nil
}
>>> let mirror = Mirror(reflecting: child.value) //Thread 13: EXC_BAD_ACCESS (code=1, address=0x0)
let type = mirror.subjectType
let code: PropertyType
对于这个模型:
class RealmAppointment: Object, Codable {
override static func primaryKey() -> String {
return CodingKeys.id.stringValue
}
@objc dynamic var id: String
@objc dynamic var startAt: Date
@objc dynamic var createdAt: Date! = Date()
@objc dynamic var updatedAt: Date! = Date()
let services = List<String>() // var also doesn't work
}
奇怪的是,我在另一个领域对象上以相同的方式定义了服务,并且它可以工作:
public class RealmOffer: Object, Codable {
override public static func primaryKey() -> String {
return CodingKeys.id.stringValue
}
static let updatedAtKey = CodingKeys.updatedAt.stringValue
@objc dynamic public var id: String?
@objc dynamic public var startAt: Date! = Date()
@objc dynamic public var createdAt: Date! = Date()
@objc dynamic public var updatedAt: Date! = Date()
public var services = List<String>()
}
有什么想法吗?
【问题讨论】:
-
这将很难回答,因为涉及到许多自定义类,我们不知道它们的功能。此外,有问题的代码正在传递
private static func getOptionalPropertyMetadata(for child: Mirror.Child,,但我们不知道 Mirror.Child 代表什么。显然,如果您稍后致电child.value,那里会出现一些问题,但我们需要更多地了解您正在做什么和通过什么。因为我们不能重复这个问题:请花点时间查看How to create a Minimal, Complete, and Verifiable example -
@Jay 我去掉了一些东西以使其更简洁,并添加了一些更清晰的细节。
标签: ios swift realm realm-list