iOS- Swift和Object-C的混合编程
1.前言
事实证明,在短时间内Swift还取代不了Object-C,
而且....
Apple Swift 开发小组的人说的:「We'll recommend people start with Swift, sure, but ObjC isn't going anywhere. Our goal's to work with the platform, not reinvent.」嗯,Apple 官方对 Swift 和 ObjC 的态度很明白了,准备同时学好两门语言吧.
那么我们首先要会的就是两种语言的混合编程了,今天简单入门下-
2.Swift调用Object-C代码
2.1.创建一个Swift project
2.2.创建一个Object-C class
这里会显示是否需要创建一个OC桥梁的header,然后我们选YES
这里是肯定要创建的
然后在OC的 class里编写一个简单方法
2.3.在桥梁文件中导入OC文件的头文件
如果不导入的话,在Swift文件里将会没有提示,并且无法调用
2.4.在Swift文件中创建对象,运行
如图:调用sayhello方法成功.
3.Object-C调用Swift代码
3.1.创建一个Object-C project
3.2.创建一个Swift class
这里仍然会显示是否需要创建一个OC桥梁的header,然后我们选YES
这里是肯定要创建的
2.3.桥梁文件
这里和Swift调用OC 不同重点,需要注意下
这个是Swift主动用来调用OC语言所需要的
这里我们是OC调用Swift语言,所以不用在这个桥梁文件中导入Swift文件
_____________
为什么呢?
因为创建它的同时,xcode还创建了一个隐藏文件
而这个隐藏文件才是我们OC调用Swift语言的必须品
那么它叫什么名字呢?
“项目工程名”+ “-” + “Swift” .h
我们需要在OC的class里,导入这个隐藏文件
虽然我们看不到,但是其实它是存在的.
2.4.在OC文件中创建对象,运行
注意:这里OC创建完对象,调用方法的时候 有时会出现——
调用方法的时候没有提示,甚至报错说找不到这个方法
这时我们不用管,直接运行
事实证明运行成功,之后报错信息就会消失
如上图:调用sayhello方法成功.
谢谢大家,还有什么疑问可以评论中提出,我有时间会耐心回复!