初始化一个空结果变量
问题描述:
我有一个叫做Task
的Realm对象。我在表格视图中显示这些任务。我有一个变量decalred来容纳这些对象。初始化一个空结果<T>变量
var tasks: Results<Task>!
在初次启动时,我从API获取这些任务。直到当地领域是空的。但是,当加载UITableViewController
时,它会触发数据源方法。在这一点上,tasks
变量仍然可以为零。所以该应用程序崩溃在像numberOfRowsInSection
方法。
如何初始化上述变量以使其处于空状态并且不会导致崩溃?
答
因此,在方法的应用程序崩溃像
numberOfRowsInSection
别让它。 你是是导致死机的人,通过假设即tasks
不是nil
,实际上它可以是。 您的工作要检查numberOfSections
看是否tasks
是nil
。如果是,返回0,这样就不会被问到任何其他问题。
答
如果你的属性可以是零,你应该像这样财产申报:
var tasks : Results<Task>?
,然后用它像
guard let tasks = tasks
else
{
// It's still nil
return
}
当你确定它不是零,您可以使用
tasks!
但根据问题,如果给定的属性可以初始化没有参数(或与),你可以做它李ke so:
var tasks = Results<Task>()
上面的代码对于声明空数组时很有用。
这仍然有效吗?现在编译器不接受'结果()'。错误状态:'不能用无参数调用初始化程序';当'Results'从'NSObject'继承(Realm 2.8.3)时,我无法找到覆盖'init', –