美文网首页
OC Swift文件混编

OC Swift文件混编

作者: hank009 | 来源:发表于2018-11-26 16:48 被阅读21次

    一.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";

    相关文章

      网友评论

          本文标题:OC Swift文件混编

          本文链接:https://www.haomeiwen.com/subject/urgbqqtx.html