Ios 当XCode自动完成Swift属性时是什么意思;对象.?.propertyName";?
我对Swift中可选类型的工作原理有一个基本的了解,但我不明白为什么XCode会在将可选属性定义为Ios 当XCode自动完成Swift属性时是什么意思;对象.?.propertyName";?,ios,swift,Ios,Swift,我对Swift中可选类型的工作原理有一个基本的了解,但我不明白为什么XCode会在将可选属性定义为 class Test { var _pageViewController: UIPageViewController? = nil override func viewDidLoad() { super.viewDidLoad() _pageViewController.?.setViewControllers(...) // a
class Test {
var _pageViewController: UIPageViewController? = nil
override func viewDidLoad() {
super.viewDidLoad()
_pageViewController.?.setViewControllers(...)
// auto completes in xcode to _pageViewController.?.setViewControllers
...
我很困惑,可选类型上的“?”属性/方法的用途是什么?据我所知,它似乎真的没有任何作用?这两个点确实是一个bug。在这种情况下,Swift中的
?
的目的是同时测试和打开可选变量。这和做同样的事情:
if let unwrappedPageViewController = _pageViewController {
unwrappedPageViewController.setViewControllers(...)
}
这意味着:如果变量\u pageViewController
不是nil,则将其展开并对其应用后续操作
希望有帮助,我认为这两点是一个错误()