Список областей не хранится в Swift 4.2 в конфигурации выпуска - PullRequest
0 голосов
/ 04 октября 2018

Я только что собрал последнюю версию своего приложения и столкнулся с проблемой, когда List s на всех моих объектах области не сохраняется.

Вот пример кода:

Объект:

public class ReportItem: Object {

    @objc dynamic var id: String!
    @objc dynamic var someDate: Date?

    // This contains another List as one of its properties
    let list = List<OtherRealmObject>()

    override public class func primaryKey() -> String {
        return "id"
    }

    convenience public init(id: String, date: Date) {
        self.init()

        self.id = id
        self.date = date
    }
}

Этот объект создается картографом json из ответа на сетевой запрос:

// Convert json to dictionary then
guard let id = json["id"] as? String else {
    return nil
}

let date = json["date"] as? Date

let objects = json["someObjects"] as? [String: Any]

let someRealmObjects = [OtherRealmObject]()
objects.forEach { object in
     // Create some realm object
     someRealmObjects.append(newSomeRealmObject)
}

let reportItem: ReportItem?
if let date = date?.convertToDateFromString() {
    reportItem = ReportItem(id: id, date: date)
} else {
    return nil
}

reportItem!.list.append(objectsIn: someRealmObjects)

return reportItem!

Затем это передается обратно в мойпросмотреть контроллер и сохранить следующим образом:

// Report item is the item we just created in the json mapper
someNetworkOperation.success = { reportItem in
    DispatchQueue.main.sync {
        let realm = try! Realm()
        try! realm.write {
            realm.add(reportItem, update: true)
        }
    }
}

Затем элемент извлекается где-то еще, однако list пусто, и когда я пытаюсь фильтровать, я получаю ошибку This method may only be called on RLMArray instances retrieved from an RLMRealm.По какой-то причине мой список не сохраняется, когда я добавляю объект отчета в базу данных.

Раньше это работало, однако в последнюю неделю или около того он перестал работать.Мне интересно, связано ли это с обновлением до Swift 4.2 / Xcode 10. Кроме того, мой код просто отлично работает в отладке, а не в выпуске.Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 08 октября 2018

Это произошло потому, что во время преобразования Swift 4.2 Reflection Metadata Level было как-то установлено на None вместо All.?♂️

...