如何从客观c代码中获取Swift AppDelegate的参考
我的项目位于Swift 3.0中,我使用的是xCode8.2。我需要在我的swift项目中导入目标C代码。目标C需要应用程序委托引用。我如何从我的目标C代码中获得快速appdelegate引用?如何从客观c代码中获取Swift AppDelegate的参考
在我的目标C文件#进口“AppDelegate.h”是给未找到错误,因为它是迅速的AppDelegate
正如纪伊已经说了,你需要#import "<ProductModuleName>-Swift.h"
在你的Obj-C .m
文件中获取所有Swift类。这里有一个你需要的样品项目https://github.com/aminbenarieb/Researches/tree/master/Swift/Swift_ObjC。
更新: 如果不能看到在Objective-C文件斯威夫特文件,请确保您有Objective-C bridging header
,如Apple Documentation:
如下导入的Objective-C到斯威夫特
要在与您的Swift代码相同的应用程序目标中导入一组Objective-C文件,您需要依赖Objective-C桥接头将这些 文件公开给Swift。当您将 Swift文件添加到现有的Objective-C应用程序或Objective-C文件到 现有的Swift应用程序时,Xcode提供创建此头文件。
有什么办法,我可以下载该代码? –
我同样这样做像你Foo.m,我加了#进口“ ObjC.m文件中的MyProjectName-Swift.h。但它说无法找到MyProjectName-Swift.h文件。 –
@AvijitDas, 1.要下载的代码确保'git'安装你机器上 - 在终端上运行: 'git的克隆https://github.com/aminbenarieb/Researches.git研究 CD研究 混帐过滤分支--prune空--subdirectory过滤斯威夫特/ Swift_ObjC HEAD ' - 否则你手动[下载项目](https://github.com/aminbenarieb/Researches/archive/master.zip),并找到SwiftObjC项目文件夹。 您是否添加了“Objective-C桥接头”? –
我不知道这是否回答你的问题。
获得的AppDelegate在斯威夫特
您可以从斯威夫特调用Objective-C代码,如果你的Objective-C代码需要一个AppDelegate中为它在一些电话工作,你可以通过调用雨燕UIApplication.shared.delegate
上山寨本。
let appDelegate = UIApplication.shared.delegate as! AppDelegate
获得的AppDelegate在Objective-C
如果需要的AppDelegate在你的Objective-C代码多数民众赞成的方式:
#import "<ProductModuleName>-Swift.h" // You have to replace with your swift module name
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
您是否使用swift代码的目标c代码?它是否与应用程序代表一起快速初始化? – Kie
我的项目是在Swift中,我有一个模块,它构建在Objective C中,在那个目标C模块中它需要appdelegate参考。 –
[我如何在Swift中获取对应用程序委托的引用?](http://stackoverflow.com/questions/24046164/how-do-i-get-a-reference-to-the-app-代理在迅速) –