【发布时间】:2016-05-27 22:39:40
【问题描述】:
我已阅读this 问题和其他一些问题。但它们与我的问题
有些无关对于UILabel,如果你不指定?或!你会得到这样的错误:
@IBOutlet 属性具有非可选类型“UILabel”
然后 Xcode 为您提供 2 个选项来修复它,您可以这样做:
修复它添加?形成可选类型 UIlabel?
修复它添加!来形成 隐式展开的可选类型 UIlabel?
但是对于字符串,您可以只输入 string 而不输入 ? 或 !,您不会收到错误为什么会这样?
如果name 未设置会怎样?那么我们会有一个 nil 没有使用 ?、! 和 Swift 来满足“类型安全”?
示例:
struct PancakeHouse {
let name: String // this doesn't have '?' nor '!'
let photo: UIImage?
let location: CLLocationCoordinate2D?
let details: String
}
我最大的困惑是我们什么时候希望不使用 Optional?
【问题讨论】:
标签: swift optional type-safety