2016-06-28 60 views
2

我们有一个Objective C项目,它即将获得一些新功能。这些新功能将在Swift中实施。到目前为止,我们已经将所有这些工作与Swift和Objective C并行工作,并且大部分工作都非常愉快。从Swift目标C项目访问应用程序委托

我目前无法完成的一件事是从swift中访问(objc)应用程序委托,特别是它的方法和托管对象上下文。

我试图

let appDelegate = UIApplication.sharedApplication().delegate! as UIApplicationDelegate 

没有任何成功。

如何从我的swift代码访问在Objective C中编写的应用程序委托并使用它的方法以及托管对象上下文?

+0

你不应该在应用程序委托中真正拥有核心数据栈... – Wain

回答

3

使用您的AppDelegate类名称,而不是UIApplicationDelegate

let appDelegate = UIApplication.sharedApplication().delegate! as <<Your Appdelegate Class>> 

,并导入桥接,头文件的appdelegate。 “桥接报头” 用于两侧桥连接

+0

应用程序委托类(<< Your Appdelegate Class >>)似乎是未知的,因为如果我这样做,它被称为未知类型 – Exinferis

+0

“Bridging-Header”用于两侧的桥接连接,因此在Bridging-Header文件中导入该appdelegate。 – Ammaiappan

1

你可以试试这个

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

1

让的appDelegate:AppDelegate中= UIApplication.sharedApplication()委托作为! AppDelegate

+0

在这种情况下,“AppDelegate”似乎是未知类型 – Exinferis

+0

我用作! AppDelegate(它应该是你的appdelegate类名)。 –

相关问题