我读到这行代码从AppDelegate获取托管对象上下文。
let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext
我阅读了每个单词的Apple文档,试图重建上面提到的正确的整体输出感。 谁能以清晰详细的方式解释这一行语法的含义?
答案 0 :(得分:2)
首先,您访问UIApplication
课程。
这是一个单身人士。它只有一个实例,它是在cocoa touch框架启动应用程序时创建的。
然后通过调用类方法sharedApplication
来访问其唯一的实例。 "共享(类名)"是重新生成单例实例的方法的通用名称。另一个常见名称是" sharedInstance"。
然后您访问其delegate
。这遵循通常使用cocoa touch在iOS应用程序开发中看到的委托模式。但这是一个非常特殊的代表,你拥有。它是AppDelegate
类。
当您让Xcode使用核心数据创建新的应用程序项目时,它会为您的AppDelegate
类创建一些标准方法,以方便您使用。
其中一个是managedObjectContext
的(计算)吸气剂。
但是,UIApplication
仅将其委托知道为实现UIApplicationDelegate
协议的任何对象。 UIApplication
不知道核心数据的其他方法。
这就是为什么你必须将.sharedApplication()
的输出强制转换为名为AppDelegate
的实现。 as
是Swift中的强制转换运算符。
在投放后,您实际上可以访问getter managedObjectContext
。
那就是它。