Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当XCode自动完成Swift属性时是什么意思;对象.?.propertyName";?_Ios_Swift - Fatal编程技术网

Ios 当XCode自动完成Swift属性时是什么意思;对象.?.propertyName";?

Ios 当XCode自动完成Swift属性时是什么意思;对象.?.propertyName";?,ios,swift,Ios,Swift,我对Swift中可选类型的工作原理有一个基本的了解,但我不明白为什么XCode会在将可选属性定义为 class Test { var _pageViewController: UIPageViewController? = nil override func viewDidLoad() { super.viewDidLoad() _pageViewController.?.setViewControllers(...) // a

我对Swift中可选类型的工作原理有一个基本的了解,但我不明白为什么XCode会在将可选属性定义为

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,则将其展开并对其应用后续操作


希望有帮助,

我认为这两点是一个错误()