【问题标题】:Initialize an empty Results<T> variable初始化一个空的 Results<T> 变量
【发布时间】:2016-12-02 17:42:59
【问题描述】:

我有一个名为Task 的领域对象。我在表格视图中显示这些任务。我有一个变量贴花来保存这些对象。

var tasks: Results<Task>!

在初始启动时,我从 API 获取这些任务。直到本地领域为空。但是当UITableViewController 加载时,它仍然会触发数据源方法。此时,tasks 变量仍然可以为 nil。所以应用程序会在 numberOfRowsInSection 这样的方法处崩溃。

我怎样才能初始化上面的变量,使它可以处于空状态并且不会导致崩溃?

【问题讨论】:

    标签: ios swift variables initialization realm


    【解决方案1】:

    所以应用程序在 numberOfRowsInSection 之类的方法处崩溃

    别这样。 是导致崩溃的人,假设tasks不是nil,而事实上它可能是。 您的工作是检查numberOfSections 以查看tasks 是否是 nil。如果是,则返回 0,这样您就不会被问到任何其他问题。

    【讨论】:

      【解决方案2】:

      下面的代码将演示如何初始化一个空的Results对象。

      class TaskManager {
      
           private var _realm: Realm?
           var realm: Realm {
               if _realm == nil {           
                   _realm = try! Realm()
               }
               return _realm!
           }
      
           var tasks: Results<Task> = realm.objects(Task.self).filter("FALSEPREDICATE")
      }
      

      【讨论】:

      • 虽然您的代码可能会提供问题的答案,但请在其周围添加上下文,以便其他人了解它的作用以及它存在的原因。
      猜你喜欢
      • 2016-11-25
      • 2017-05-06
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2018-05-02
      相关资源
      最近更新 更多