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

我读了这行代码从AppDelegate获取托pipe的对象上下文。

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

我读了每个单词的苹果文档,试图重新构build上面提到的正确的整体输出。 谁能清楚详细地解释这一行语法的含义?

首先访问UIApplication类。

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

然后通过调用类方法sharedApplication访问它的唯一实例。 “shared(classname)”是重新生成单例实例的方法的通用名称。 另一个常见名称是“sharedInstance”。

然后你访问它的delegate 。 这遵循通常的委托模式,你经常在使用cocoa触摸的iOS应用程序开发中看到。 但这是你自己的一个非常特殊的代表。 这是AppDelegate类。 当让Xcode使用核心数据创build一个新的应用程序项目时,为了方便起见,它会在AppDelegate类中创build一些标准方法。

其中之一是managedObjectContext的(计算)getter。

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

这就是为什么您必须将.sharedApplication()的输出.sharedApplication()为名为AppDelegate的实现。 as Swift中的演员一样。

它被铸造后,你可以实际访问getter managedObjectContext

而已。