【发布时间】:2017-05-30 22:06:45
【问题描述】:
我正在关注 Ray Wenderlich 网站上关于 Swift 中的 ARC 的教程,我很想知道为什么在 Playground 中创建类时允许使用可选项而不是隐式可选项?
我目前的操场代码是:
class User {
var name: String
init(name: String) {
self.name = name
print("User \(name) is initialized")
}
deinit {
print("User \(name) is being deallocated")
}
}
class Phone {
let model: String
var owner: User?
init(model: String) {
self.model = model
print("Phone \(model) is initialized")
}
deinit {
print("Phone \(model) is being deallocated")
}
}
do {
let user1 = User(name: "John")
}
let user2 = User.init(name: "Berry")
在 Phone 类中,如果我将 owner 变量更改为带有感叹号的隐式可选项,则 Playground 不会引发错误,但是如果我删除问号或不使其成为可选项,则会收到错误消息.
如果未设置隐式可选选项,是否会强制应用崩溃?
感谢任何帮助,以明确理解为什么隐式可选是可以的。
【问题讨论】:
标签: swift automatic-ref-counting optional