我对Swift中可选类型的工作方式有一个基本的了解,但我很困惑,为什么XCode在定义为
时自动完成我的可选属性class Test {
var _pageViewController: UIPageViewController? = nil
override func viewDidLoad() {
super.viewDidLoad()
_pageViewController.?.setViewControllers(...)
// auto completes in xcode to _pageViewController.?.setViewControllers
...
我很困惑,'的目的是什么?可选类型上的属性/方法是for?据我所知,它似乎没有任何用途?
这两个点确实是一个bug。在这种情况下,Swift中?
的目的是同时测试和展开你的可选变量。这和以下操作是一样的:
if let unwrappedPageViewController = _pageViewController {
unwrappedPageViewController.setViewControllers(...)
}
这意味着:如果变量_pageViewController
不是nil,将其展开并对其应用后续操作。
希望有帮助,