一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。
二.Swift 和 OC 混编
混编无非两种情况:
1.在 OC 工程项目或者文件中使用 Swift 的文件
当在OC文件中调用Swift文件中的类的时候,首先在OC文件中要加上 #import"ProjectName-Swift.h"(名称组成:工程名-Swift)。
这个文件虽然在工程中看不见,但是他是真实存在的。编译后,可以按住command+单机该文件名,进入该文件查看代码。
引入后,具体类的使用,直接anOC的方式使用即可。
2.在 Swift 工程或者文件中使用 OC 的文件
当在Swift文件中使用OC文件的时候,只需要在桥接文件(即ProjectName-Bridging-Header.h文件)中引入需要的头文件,具体使用,按照对应的Swift语法结构来即可。
三.两个文件
1.桥接文件:
桥接文件 "ProjectName-Bridging-Header.h",在首次创建其他文件的时候会自动生成。如果不小心删除了,也可以手动添加,不过名字必须时"ProjectName-Bridging-Header.h"头文件(名称组成:工程名-Bridging-Header.h),如果名字记不清楚,也可以自己心间HeaderFile后,在Targets->Build Settings->Swift Compiler - General -->Objective-C Bridging Header配置文件路径,这个文件主要是Swift使用OC类时使用的。
2.Objective-C Generated Interface Header Name文件
这个文件时混编时,系统生成的Swift文件对应的Objective-C的头文件,具体可以在Targets->Build Settings ->Swift Compiler - General -> Objective-C Generated Interface Header Name进行配置,默认文件是 工程名-Swift.h,一般不做改动。
四.混编注意事项
对于需要混编的Swift类添加@objc声明或继承NSObject或者NSObject的子类
class TestClass{
//属性
//实现
}
如果要在OBjective-C类中使用TestClass类,应当使用@objc加以声明,或者将TestClass继承自NSObject或者NSObject子类,否则引入 ProductName-Swift.h之后,程序找不到对应类。
使用第三方Framework
1.设置:target -> build setting -> Packaging -> Defines Module为 “YES”;
2.然后,配置文件 target -> build Phases -> Link Binary,添加要导入的Framework.
3.最后,还是要配置桥接文件,比如要使用abc-lib.framework库中的abc.h,就要这样配置:#import"abc-lib/abc.h";
网友评论