可以'向下转'到AppDelegate会失败吗?

M3n*_*d3z 5 cocoa-touch ios swift

使用CoreData时,我们需要访问可通过AppDelegate获得的共享存储.要获得对AppDelegate的引用,我们可以通过执行以下操作来获取它:

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate 
else {
        return
    }
Run Code Online (Sandbox Code Playgroud)

向下转向Appdelegate时,为什么我们必须如此安全?由于某种原因,这种沮丧的人会失败吗?如果是这样,为什么呢?

我环顾四周,无法找到原因,为什么我们编写这段代码,并想知道为什么我写东西会有所帮助!

真的非常感谢你

vad*_*ian 6

可选的向下转换AppDelegate(实际上是代表应用程序委托类的类)永远不会失败,因为如果缺少应用程序委托类,应用程序甚至不会启动.

你可以100%安全地写

let appDelegate = UIApplication.shared.delegate as! AppDelegate
Run Code Online (Sandbox Code Playgroud)

许多人遭受惊恐恐惧症 并且认为所有感叹号都是邪恶的,你总是要有guard任何选择.这是错的.世界不仅是黑人和白人.在许多情况下强制展开可选项是安全的,就像在这种特殊情况下一样.