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方法成功.
 
 
谢谢大家,还有什么疑问可以评论中提出,我有时间会耐心回复!
 
作者: 清澈Saup
出处: http://www.cnblogs.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
 
 
posted @ 2015-07-21 16:20  清澈Saup  阅读(4141)  评论(0编辑  收藏  举报