(UIApplication.sharedApplication()。委托为AppDelegate).managedObjectContext

时间:2015-11-04 12:02:30

标签: ios swift

我读到这行代码从AppDelegate获取托管对象上下文。

let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext

我阅读了每个单词的Apple文档,试图重建上面提到的正确的整体输出感。 谁能以清晰详细的方式解释这一行语法的含义?

1 个答案:

答案 0 :(得分:2)

首先,您访问UIApplication课程。

这是一个单身人士。它只有一个实例,它是在cocoa touch框架启动应用程序时创建的。

然后通过调用类方法sharedApplication来访问其唯一的实例。 "共享(类名)"是重新生成单例实例的方法的通用名称。另一个常见名称是" sharedInstance"。

然后您访问其delegate。这遵循通常使用cocoa touch在iOS应用程序开发中看到的委托模式。但这是一个非常特殊的代表,你拥有。它是AppDelegate类。 当您让Xcode使用核心数据创建新的应用程序项目时,它会为您的AppDelegate类创建一些标准方法,以方便您使用。

其中一个是managedObjectContext的(计算)吸气剂。

但是,UIApplication仅将其委托知道为实现UIApplicationDelegate协议的任何对象。 UIApplication不知道核心数据的其他方法。

这就是为什么你必须将.sharedApplication()的输出强制转换为名为AppDelegate的实现。 as是Swift中的强制转换运算符。

在投放后,您实际上可以访问getter managedObjectContext

那就是它。