阅读collectionView
的{{1}}上的Apple documentation,它似乎是可选的,由UICollectionViewController
表示。这对我来说似乎很奇怪,好像?
可能是collectionView
,然后nil
似乎毫无意义。关于UICollectionViewController
的{{1}},Apple Documentation表示不能tableView
,因为它标有UITableViewController
。
我的问题是,为什么nil
是可选的,在使用!
时我必须考虑什么?我必须担心collectionView
将是UICollectionViewController
,此外,collectionView
初始化的时间点是什么时候?
感谢。
答案 0 :(得分:1)
当创建控制器时,它的所有视图都以nil
开头,因为它们尚未创建 - 出于性能原因,iOS延迟加载尽可能多。当视图控制器的视图已完全加载时,会调用viewDidLoad()
方法,因此您知道它的使用安全。
答案 1 :(得分:0)
当我编写视图控制器时,我尝试在loadView
方法中创建视图,因此在需要视图之前,所有视图属性都是nil
,这就是为什么它们都需要是选项。我认为它与UICollectionViewController
和UITableViewController
相同。
为什么有?
收集和!
表的原因?我觉得这很简单。 UITableViewController
比UICollectionViewController
年龄大得多,并且两者的查看属性都有不同的注释(nullable
与null_resetable
),这会导致使用Swift时出现不同的行为。