【问题标题】:RealmSwift List<String> EXC_BAD_ACCESSRealmSwift List<String> EXC_BAD_ACCESS
【发布时间】: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


【解决方案1】:

奇怪的是,将 RealmAppointment.services 的定义从

let services = List<String>()

到

let services: List<String>! = List<String>()

修复了这个崩溃问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多