这里将使用Xcode 8.0演示Swift与OC类的相互调用
- Swift项目中调用OC类
1.首先在Swift工程中新建一个OC类进行演示
新建OC类.png在点击Next-->选择路径
后,会提示是否创建一个桥接文件
注意:这个提示只会在Swift项目第一次创建OC类时提醒,如果点击了Cancel
或者是Don't Create
,当此项目再创建OC类时,不会提醒创建桥接文件
2.这里先选择Create Bridging Header
来演示,在我们创建好一个OC类的同时,系统会自动帮我们以项目名称-Bridging-Header
生成一个桥接文件OC_Swift-Bridging-Header.h
3.将OC类的头文件导入到桥接文件中
#import "Person.h"
4.这样就可以在Swift类中使用OC类了
lazy var person: Person = Person()
如果手动创建桥接文件,需要手动配置路径(类似于PCH文件一样)
1.创建桥接文件:iOS-->Source-->Header File
2.配置路径:点击项目-->Build Settings-->Swift Compiler - Code Generation下的Object-C Bridging Header后补全路径
- OC项目中调用Swift类
1.还是在刚刚的Swift项目中,直接新建一个OC控制器类,将StoryBoard中初始控制器的身份检测器标识换成OC类
OC类.png
2.在刚刚的项目中新建一个Student
的Swift类
3.在OC类中调用Swift类,需要按照#import "项目名-Swift.h"
格式导入头文件,例如:
#import "OC_Swift-Swift.h"
注意:如果项目名称中同时包含 中文、数字和 "-" ,可能会导致失败
4.这样就可以在OC项目中使用Swift类了
Student *student = [[Student alloc] init];
网友评论