快速-隐式展开的可选内容

时间:2018-10-25 11:07:38

标签: ios swift optional

考虑以下语句

var aString: String! = "this is a test string"

现在我们看到aString始终需要保留值“”或某些文本。然后,使它成为隐式未包装的可选内容有什么用。为什么不能像这样的简单字符串:

var aString: String = "this is a test string"

除了IBOutlets之外,我还想了解隐式未包装可选对象的存在的目的。

换句话说,当我们知道var总是具有一些非nil值时,使var隐式未包装的可选内容有什么好处,为什么我们不应该将其声明为普通的var $content = $(composeView.getBodyElement()); var $myContent = $('<div class="my_content">Hello World!</div>'); $content.append($myContent ); composeView.setBodyHTML($content.html());

1 个答案:

答案 0 :(得分:3)

所有与类初始化有关。

以出口为例,它们被强制解开,因为我们知道它们在XIB或Storyboard中进行初始化后将保留一个值,但在类初始化之前将不会对其进行设置。

强制解开可选出口以告诉编译器,我有责任确保在调用此变量之前将其设置。

在您的示例中,我认为写没有道理

let aString: String! = "this is a test string"

应该与您写的一样

let aString: String = "this is a test string"

更有意义的是:

var aString: String!

表示您将拥有此变量初始化的所有权(即确保它不是nil)

相关问题