Swift !和?的区别

例如

var window: UIWindow?

如果 window没有初始化那么会默认的 置为 nil.
如果window对象没有初始化,那么接下来使用window调用方法不会执行.

例如

var window: UIWindow!
此时 ! 的作用是告诉编译器 window对象是 Optional的,在之后期间使用window变量都会隐式在操作前添加 ! .如果window 未初始化,直接对 window 解包,程序会crash

你可能感兴趣的:(Swift !和?的区别)