【问题标题】:How can I use a lazy var in Swift and Realm?如何在 Swift 和 Realm 中使用惰性 var?
【发布时间】:2018-08-24 07:09:24
【问题描述】:

我在 Swift 中有一个惰性变量,例如:

import Realm

class DataUser: RLMObject {

@objc dynamic lazy var id: String = self.myId()

@objc dynamic var firstTime: Int = 0

@objc dynamic var position: Int = 0

private func myId() -> String {
        return “\(firstTime)\(position)”
}

我收到这条消息:

** 由于未捕获的异常“RLMException”而终止应用程序,原因:Realm Swift 对象上不允许使用“惰性托管属性“id” 班级。要么将该属性添加到忽略的属性列表中,要么使 它不懒惰。'

在 Swift 和 Realm 中使用惰性变量的正确方法是什么?

谢谢!

【问题讨论】:

标签: ios swift variables realm dynamic-variables


【解决方案1】:

我相信你可以使用ignoreProperties() 方法来创建惰性变量

Swift 代码:

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

【讨论】:

    【解决方案2】:

    你也可以直接使用dynamic lazy var id: String = self.myId(),我不认为你的实现是错误的。但是由于您的 id 很懒,Realm 似乎无法正确处理。你可以看到bug report也差不多。

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多