初始化一个空结果变量

问题描述:

我有一个叫做Task的Realm对象。我在表格视图中显示这些任务。我有一个变量decalred来容纳这些对象。初始化一个空结果<T>变量

var tasks: Results<Task>! 

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

如何初始化上述变量以使其处于空状态并且不会导致崩溃?

因此,在方法的应用程序崩溃像numberOfRowsInSection

别让它。 你是是导致死机的人,通过假设tasks不是nil,实际上它可以是。 您的工作要检查numberOfSections看是否tasksnil。如果是,返回0,这样就不会被问到任何其他问题。

如果你的属性可以是零,你应该像这样财产申报:

var tasks : Results<Task>? 

,然后用它像

guard let tasks = tasks 
else 
{ 
    // It's still nil 
    return 
} 

当你确定它不是零,您可以使用

tasks! 

但根据问题,如果给定的属性可以初始化没有参数(或与),你可以做它李ke so:

var tasks = Results<Task>() 

上面的代码对于声明空数组时很有用。

+0

这仍然有效吗?现在编译器不接受'结果()'。错误状态:'不能用无参数调用初始化程序';当'Results'从'NSObject'继承(Realm 2.8.3)时,我无法找到覆盖'init', –