博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-C与Swift混合开发
阅读量:6839 次
发布时间:2019-06-26

本文共 1935 字,大约阅读时间需要 6 分钟。

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

Object-C中调用Swift

以下就给大家分享下Object-C项目下怎样使用Swift编程。

  1. 首先创建一个Object-Cproject

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

这里写图片描写叙述

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

在Swift中写一个方法測试一下:

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

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

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

详细到我们这里就是为:

#import “BlendSO-swift.h”

5.最后就能够放心地调用Swift类了

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的头文件

你可能感兴趣的文章
文件包含漏洞总结
查看>>
vim着色
查看>>
jQuery|容易混淆的first、first-child、first-of-type
查看>>
[Python]学习基础篇:字符串的处理
查看>>
CentOS用户及用户组管理
查看>>
yum安装mysql 5.6
查看>>
ubuntu、Centos、win2003开启snmp服务
查看>>
centos查看格式化的系统时间
查看>>
科技赋能特殊群体教育 让爱心更有力量
查看>>
big endian与little endian
查看>>
Listener监听器与web.xml相关配置
查看>>
单机服务器已经安装好二进制mysql5.6.20,然后开启mysql多实例
查看>>
greenplum分布式集群(数据仓库)实战
查看>>
CentOS-6.x下搭建golang环境
查看>>
Sys和system用户、sysdba 和sysoper系统权限、dba角色
查看>>
SCCM 2012 SP1系列(十六)资产管理和远程管理
查看>>
项目案例分享二:密码策略与上次交互式登录
查看>>
logz.io一个企业级的ELK日志分析器 内部集成了机器学习识别威胁——核心:利用用户对于特定日志事件的反馈处理动作来学习判断日志威胁 + 类似语音识别的专家系统从各方收集日志威胁信息...
查看>>
详解DNS的常用记录(上):DNS系列之二
查看>>
[零基础学JAVA]Java SE面向对象部分-21.包及访问权限
查看>>