Object-C与Swift混合开发
来源:互联网 发布:深圳编程培训机构 编辑:程序博客网 时间:2024/06/04 19:41
Object-C作为Apple的iOS App开发语言服务了许多个年头,2014年Apple推出了新的编程语言Swift,更高效更安全的口号再次吸引了一大批非iOS开发程序员进入,小编认为Swift取代Object-C只是时间问题,在神州这片土地上,毕竟技术普及有些落后,但再有两年左右时间Swift产品链将形成,第三方支持框架逐步完善,Swift必将成为iOS开发主流。目前来看,激进派的现状Swift与Object-C混合开发。
Object-C中调用Swift
下面就给大家分享下Object-C项目下如何使用Swift编程。
首先创建一个Object-C工程
右击项目名称,在弹出的快捷菜单上点击“New File…”菜单项,如下图所示,在新建文件对话框中选择点击“Cocoa Touch Class”列表项,然后点击“Next”按钮,进入下一步
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
首先创建一个Swift工程
右击项目名称,在弹出的快捷菜单上点击“New File…”菜单项,如下图所示,在新建文件对话框中选择点击“Cocoa Touch Class”列表项,然后点击“Next”按钮,进入下一步
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")
总结一下:
Swift与Objective-C的互调在前期创建步骤基本相同
中期都会提示生成一个桥接文件,都是第一次的时候会提示,再创建就不会再次提示,但两者是有区别的:Objective-C中调用Swift时生成的是隐式的,而Swift调用Objective-C时是显式的桥接文件
最后在Objective中调用Swift时需要在所在类上边加上格式为#import “项目名称-swift.h”的头文件,而而Swift调用Objective-C时却是在显式的桥接文件中引入Objective-C的头文件
- Object-C与Swift混合开发
- Object-c和Swift混合开发(项目实战)
- object-c与swift
- object-c 与 swift 混编
- Object C与 C/C++混合编程
- Objective-C和Swift混合编程开发
- 解决C++与object-c混合编译
- 关于swift与objective-c混合使用
- 关于swift与objective-c混合使用
- Swift 与 Objective-C混合编程
- Swift与Objective-C混合编程
- 关于swift与objective-c混合编译
- OC与Swift混合开发技巧
- Swift 与Object C 的比较
- IOS Object-C与Swift相互调用
- Swift与Object-C的区别
- iOS开发中Swift和Objecttive-C的混合开发
- Object-C与标准C/C++混合编程[转载]
- 对博弈的认知,及刷题总结
- 【Java内存】JVM 堆内存设置原理
- ViewGroup事件分发
- bzoj 3674 可持久化并查集加强版
- Swift 2.0中常见的bug (1)
- Object-C与Swift混合开发
- Reverse Words in a String
- php传递数据给javascript
- CodeForces-630 D. Hexagons!【递推】
- leetcode 169. Majority Element
- 网上发现的一个stm32的I2C比较通俗易懂的入门例程。
- Java基础--流程控制
- Scala简介及该注意的基本小知识点
- DIV+CSS网页兼容所有主流浏览器技巧(IE6/IE7/IE8/IE9/Firefox/Chrome)