美文网首页
iOS-Swift 和Objective-c 混编

iOS-Swift 和Objective-c 混编

作者: 下班不写程序 | 来源:发表于2020-03-31 21:31 被阅读0次

    一、Swift项目中使用OC 的类

    1. 当Swift 项目中第一次创建或者手动拖入OC 类的时候, Xcode会提示, 是否创建对应的桥接文件: 创建桥接文件提示
    2. 当出现该提示框后, 选择cancel, 那么之后引入OC 的类还是会出现该提示框的.
    3. 当出现该提示框选择了创建, 那么系统就会默认为你创建对应的桥接文件, 在其中引入对应的OC 类的头文件就可以正常使用了.
    4. 当出现该提示框选择了不创建, 那么之后再也不会出现该弹窗了, 就需要手动来创建桥接文件了:
      4.1 command + N 创建桥接文件
      4.2 target -> Build settings -> 搜索Bridging-Header 设置桥接文件路径
      4.3 在自己创建的桥接文件中引入对应的OC 类的头文件就OK了.

    二、OC 项目中使用Swift 的类

    1. 当OC 项目中第一次创建或者手动拖入Swift 类的时候, Xcode会提示, 是否创建对应的桥接文件, 整个操作和上面(Swift项目中使用OC 的类)相同.
    2. 异同点是, 在OC 项目中的桥接文件中什么都不用写, 但是这个桥接文件也不可或缺!
    3. 使用Swift 类时, 在OC项目中导入头文件.
      3.1 引入格式为: #import "当前项目名称-Swift.h"
      3.2 当项目名称中存在中文、横线、数字等, 就会导致引入头文件失败(协议等也注意类似情况).
      3.3 出现3.2 的情况后, 解决办法:target -> Build settings -> 搜索product name 修改代码中引用的项目名称
      3.4 在需要使用的地方或者.pch中直接引用 #import "hah-Swift.h" 即可.
    4. 在Swift4.0 之后, 添加的所有.swift 文件需要做如下操作:
      4.1 这个类必须是继承NSObject 或者NSObject 的子类.
      4.2 class 前面要添加上@objcMembers , 以代表这个类的所有方法和属性前面都自动添加了@objc.
      @objcMembers class SingleTools: NSObject { }

    .End

    相关文章

      网友评论

          本文标题:iOS-Swift 和Objective-c 混编

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