Objective 和 Swift相互调用

来源:互联网 发布:i苹果助手官方下载mac 编辑:程序博客网 时间:2024/06/05 06:59

闲来无事,做作swift和Oc直接的互调试试手。


先创建一个swift的项目。名字叫Hello.如图所示。



在创建一个Objective的类叫做OcOne,如下:




Next确定之后,会提出如下的提示框:



意思是要创建一个swift和OC的bridge,Finsh一下。添加成功,会在prj里面看到一个名为productName-Bridging-Header.h的文件,这个文件就是关联OC类型的文件。如图所示:



我创建的项目名字为Hello,因此可以看到一个Hello-Briding-Header.h的桥接文件。

文件内容有注视表明,需要在Swift中调用哪些文件,直接import这个文件即可。

我想在这个里面访问OcOne的类,因此我import进去。

#import "OcOne.h"

同时我们可以看到prj的配置文件自动添加了,这个文件对应的路径,



这样,在swift文件我们就可以访问OcOne这个类了。


相对于在Swift调用OC类,在OC里面调用Swift类会比较麻烦。

在prj -> Build Settings -> Packaging  里面将Defines Module设置为YES,再给Product Module Name 设置一个Custom的名字,然后在对应的OC类里面impot “Custom-swift.h”就可以调用Swift类对象了。

如图所示:



我定义的名字为Module,在对应的OC类里面,导入

#import "Module-Swift.h"

那就可以使用swift类了。如下:

#import "OcOne.h"


#import "Module-Swift.h"


@implementation OcOne



- (void)sayHello{

    ViewController *vc = [[ViewControlleralloc] init];

}


@end


相比于上面的Swift调用OC类型多了两个配置,还算简单。这样,我们就完成了相互调用。


0 0
原创粉丝点击