美文网首页程序员
OC调用Swift中含有inout的函数失败

OC调用Swift中含有inout的函数失败

作者: DSA碼侬 | 来源:发表于2018-04-17 17:26 被阅读35次

    原本OC的项目,想换成Swift项目,故,在OC项目中一步步加入Swift代码,最终代替OC代码

    1、首先修改相关参数


    参数设置

    2、新建swift文件,继承自NSObject

    桥接头文件
    桥接文件(项目名称-Bridging-Header.h)内部注释是:
    //
    //  Use this file to import your target's public headers that you would like to expose to Swift.
    //  翻译:如果swift中要用到的oc文件,请把oc的头文件import这里,暴露给swift使用-为了以后用得到,我也create了该文件
    

    3、例如在swift实现了两个函数

    swift

    但是,在"BQJR_2015-Swift.h"内部查看如下图所示,明显少了一个函数的定义:

    xxx-Swift.h

    解决办法:swift方法里面加入inout是不能被oc转换成功调用的,去掉inout即可(inout的意义将一个值类型参数以引用方式传递)

    @interface BQSwiftTools (SWIFT_EXTENSION(BQJR_2015))
    + (CGSize)sizeTextWithText:(NSString * _Nonnull)text font:(UIFont * _Nonnull)font maxSize:(CGSize)maxSize SWIFT_WARN_UNUSED_RESULT;
    @end
    
    @class UIView;
    
    @interface BQSwiftTools (SWIFT_EXTENSION(BQJR_2015))
    + (void)alertBottomViewWithMsg:(NSString * _Nonnull)msg superView:(UIView * _Nullable)superView;
    @end
    

    相关文章

      网友评论

        本文标题:OC调用Swift中含有inout的函数失败

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