Object-C与Swift混合开发

Object-C做为Apple的iOS App开发语言服务了不少个年头,2014年Apple推出了新的编程语言Swift。更高效更安全的口号再次吸引了一大批非iOS开发程序猿进入,小编以为Swift代替Object-C仅仅是时间问题,在神州这片土地上,毕竟技术普及有些落后。但再有两年左右时间Swift产品链将造成。第三方支持框架逐步无缺。Swift必将成为iOS开发主流。眼下来看,激进派的现状Swift与Object-C混合开发。编程

Object-C中调用Swift

如下就给你们分享下Object-C项目下怎样使用Swift编程。swift

  1. 首先建立一个Object-Cproject安全

  2. 右击项目名称。在弹出的快捷菜单上点击“New File…”菜单项。例如如下图所看到的。在新建文件对话框中选择点击“Cocoa Touch Class”列表项。而后点击“Next”button,进入下一步markdown

这里写图片描写叙述
3. 输入新建类的类名,选择需要的父类类型。切换编程语言为Swift,而后点击“Next”,最后会出现例如如下图所看到的的对话框,主要提示是否本身主动生成隐藏的桥街头文件。显然这里需要建立,点击Create Bridging Header ,这样一个Object-C中就建立了一个Swift类
这里写图片描写叙述框架

在Swift中写一个方法測试一下:编程语言

func SayHi()
{
print("Hello,Welcome to call me!")
}

4.在Object-C中调用时需要注意。在类中需要引入隐藏式维护头文件post

#import “项目名称-swift.h”

详细到咱们这里就是为:atom

#import “BlendSO-swift.h”

5.最后就可以放心地调用Swift类了code

SwiftClass *swift=[[SwiftClass alloc]init];

[swift SayHi];

那Swift项目中怎么调用Object-C呢?事实上跟上边比較类似图片

Swift中调用Object-C

  1. 首先建立一个Swiftproject

  2. 右击项目名称,在弹出的快捷菜单上点击“New File…”菜单项,例如如下图所看到的。在新建文件对话框中选择点击“Cocoa Touch Class”列表项。而后点击“Next”button。进入下一步

    这里写图片描写叙述

    3.输入新建类的类名。选择需要的父类类型,切换编程语言为Objective-C,而后点击“Next”,最后会出现例如如下图所看到的的对话框,主要提示是否本身主动生成显式的桥街头文件,显然这里需要建立,点击Create Bridging Header ,这样一个Swift中就建立了一个Objective类

    在新建的Objective-C中測试一下:

    ObjectiveCClase.h中
    
    @interface ObjectiveCClase : NSObject
    @property(nonatomic,copy)NSString *name;
    -(id)initWithName:(NSString *)name;
    -(void)SayHi:(NSString *)name;
    @end
    
         ObjectiveCClase.m中
    
    -(id)initWithName:(NSString *)name
    {
            self=[super init];
            self.name=name;
            return self;
    }
    -(void)SayHi:(NSString *)name
    {
       NSLog(@"%@说:Swift,欢迎你调用我!",name);
    }

    4.这里跟上面不一样的是需要在显式桥接头文件里增长Objective-C中的类的头文件名称,而Objective-C中不用(也无法调呀,因为是隐式的)

这里写图片描写叙述

5.最后在Swift中调用Objective-C的类实现OC中的功能

let objective=ObjectiveCClase(name: "Objective-C")
    objective.SayHi("Objective-C")

总结一下:

  1. Swift与Objective-C的互调在前期建立步骤基本一样

  2. 中期都会提示生成一个桥接文件,都是第一次的时候会提示,再建立就不会再次提示,但二者是有差异的:Objective-C中调用Swift时生成的是隐式的,而Swift调用Objective-C时是显式的桥接文件

  3. 最后在Objective中调用Swift时需要在所在类上边加上格式为#import “项目名称-swift.h”的头文件,而而Swift调用Objective-C时倒是在显式的桥接文件里引入Objective-C的头文件

相关文章
相关标签/搜索