我有一个创建对象的方法,像往常一样返回它。
func myFunction() -> MyObject?{
var object = MyObject()
调试它我可以看到在这个函数的末尾,这个对象有一个有效的内存地址。
return object
}
然而,当我收到它而不是显示nil或对象地址时,我可以看到单词" some"。如果我将此对象与nil进行比较,则不会将其评估为非零对象。
result = something.myFunction()
if result != nil {
println("never reaches here")
}
发生了什么事?
答案 0 :(得分:1)
您已声明该方法可返回可选 MyObject
。在Swift中,选项被实现为具有两个可能值的枚举:.None
,通常以其文字形式显示nil
和.Some
,其中包含可选值作为一个相关的价值。您在调试器中看到Some
,因为您的方法成功返回包含在可选项中的值。
您可以在Swift语言指南中read more about Optionals。