美文网首页
Swift类与OC类相互调用

Swift类与OC类相互调用

作者: ShenYj | 来源:发表于2016-09-18 22:40 被阅读118次

    这里将使用Xcode 8.0演示Swift与OC类的相互调用

    - Swift项目中调用OC类

    1.首先在Swift工程中新建一个OC类进行演示

    新建OC类.png

    在点击Next-->选择路径后,会提示是否创建一个桥接文件

    提示是否创建桥接文件.png

    注意:这个提示只会在Swift项目第一次创建OC类时提醒,如果点击了Cancel或者是Don't Create,当此项目再创建OC类时,不会提醒创建桥接文件

    2.这里先选择Create Bridging Header来演示,在我们创建好一个OC类的同时,系统会自动帮我们以项目名称-Bridging-Header生成一个桥接文件OC_Swift-Bridging-Header.h

    桥接文件.png

    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];

    相关文章

      网友评论

          本文标题:Swift类与OC类相互调用

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