2014-11-20 58 views
0

我有一个方法,创建一个对象返回它照常。调试器显示“一些”,而不是内存地址

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

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

return object 
} 

但是,当我收到它而不是显示零或对象地址,我可以看到单词“一些”。如果我将这个对象与nil比较,它不会被评估为非零对象。

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

这是怎么回事?

debug answer

回答

1

你已经宣布方法返回一个可选MyObject。在Swift中,可选项是作为一个枚举实现的,它有两个可能的值:.None,通常以文字形式显示,nil.Some,它将可选值保存为关联值。您在调试器中看到Some,因为您的方法成功返回包含在可选项中的值。

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

相关问题