在swift中将realm对象作为ignore属性添加到realm对象?

kid*_*d49 8 realm ios swift

我试图将一个非领域类对象添加到这样的领域对象.

class TrainTripItinerary: Object {
    dynamic var  departStationName: String?
    dynamic var  departStationCode: String?
    var runningStatus: TrainRunningStatus?

    override static func ignoredProperties() -> [String] {
        return ["runningStatus"]
    }

}
Run Code Online (Sandbox Code Playgroud)

虽然TrainRunningStatus不是领域类.

class TrainRunningStatus {
    var trainDataFound: String?
    var startDate: String?
    var startDayDiff: String?
}
Run Code Online (Sandbox Code Playgroud)

我现在无法更新runningstatus属性.谁知道它是如何工作的?我分别获取runnningstatus并将其分配给realm对象,但即使在赋值后它也保持为零.

例如.

let runningStatus = TrainRunningStatus()
trainTripItinerary.runningStatus = runningStatus
Run Code Online (Sandbox Code Playgroud)

这行不行,trainTripItinerary runningStatus属性未正确设置,它总是为零.

Dmi*_*try 4

正如评论中所建议的,请确保使用相同的实例,TrainTripItinerary因为忽略的属性不会在不同实例之间自动更新其值。

\n\n

请参阅下面的示例代码,该代码演示了被忽略的属性如何工作

\n\n
let realm = try! Realm()\n\ntry! realm.write {\n    realm.deleteAll()\n}\n\nlet runningStatus = TrainRunningStatus()\n\nvar trainTripItinerary = TrainTripItinerary()\ntrainTripItinerary.runningStatus = runningStatus\n\nassert(trainTripItinerary.runningStatus != nil)\n\ntry! realm.write {\n    realm.add(trainTripItinerary);\n}\n\nassert(trainTripItinerary.runningStatus != nil)\n\ntrainTripItinerary = realm.objects(TrainTripItinerary.self).first!\n\nassert(trainTripItinerary.runningStatus == nil)\n
Run Code Online (Sandbox Code Playgroud)\n