我知道什么"?" 和"!" 当我在Swift中声明变量时.但是在使用这些变量时它们意味着什么?例如,在此代码中:
var attachment: NSTextAttachment = NSTextAttachment()
attachment.image = UIImage(named: "placeholder.png")
attachment.image!.size ... // or attachment.image?.size ...
Run Code Online (Sandbox Code Playgroud)
attachment.image!.size和之间有什么区别attachment.image?.size?
Aar*_*ger 46
使用attachment.image!.size,如果你保证image?不nil.如果你错了(确实如此nil)你的应用程序将崩溃.这称为强制展开.
如果您不确定它不会nil,请使用image?.
在你的情况下没问题image!,因为你控制是否placeholder.png存在.
阅读有关Swift Optionals的所有文档.它是该语言的基本和基本部分.
vir*_*rus 28
什么是 !和?:
如果您正在使用attachment.image!.size任何变量!意思是,编译器不打扰该变量有任何值或nil.它会采取进一步行动,它将尝试获得图像的大小.如果attachment.image是nil那么应用程序将崩溃在这里.
虽然,attachment.image?.size这将确保你,如果attachment.image不是零,那么将进行进一步的行动,否则它确认应用程序不会在nil价值的情况下崩溃image.
摘要:
我们应该使用!,当我们确保选项类型变量一次具有值时,我们需要对其进行进一步操作,否则.
| 归档时间: |
|
| 查看次数: |
22072 次 |
| 最近记录: |