调试器显示"一些"而不是内存地址

时间:2014-11-20 22:05:07

标签: swift

我有一个创建对象的方法,像往常一样返回它。

func myFunction() -> MyObject?{
    var object = MyObject()

调试它我可以看到在这个函数的末尾,这个对象有一个有效的内存地址。

    return object
}

然而,当我收到它而不是显示nil或对象地址时,我可以看到单词" some"。如果我将此对象与nil进行比较,则不会将其评估为非零对象。

result = something.myFunction()
if result != nil {
     println("never reaches here")
}

发生了什么事?

debug answer

1 个答案:

答案 0 :(得分:1)

您已声明该方法可返回可选 MyObject。在Swift中,选项被实现为具有两个可能值的枚举:.None,通常以其文字形式显示nil.Some,其中包含可选值作为一个相关的价值。您在调试器中看到Some,因为您的方法成功返回包含在可选项中的值。

您可以在Swift语言指南中read more about Optionals