美文网首页
swift与objc混编

swift与objc混编

作者: 仗键天涯 | 来源:发表于2019-06-04 17:48 被阅读0次

    1、在原来objc的项目中增加swift文件,Xcode会询问是否配置objc的桥接头文件,默认点击“Create Bridging Header”。

    2、想要在原来objc代码中用到swift文件定义的类,我们需要导入一个头文件,该头文件xcode动态创建,而且在工程文件中被隐藏起来的,而且其名字有个固定的规范。

    #import“ProductModuleName-Swift.h”

    ProductModuleName代表工程名字,而不是某个swift文件名。

    3、如果你用Swift写的class是继承自NSObject的话,Swift会默认自动为所有的非private的类和成员加上@objc。

    在xcode10.2.1&swift5环境下上面描述无效,必须要在每个方法或属性前增加@objc标记,才能在“ProductModuleName-Swift.h”头文件自动生成对应的objc属性和方法。

    import Foundation

    class Contact: NSObject {

        @objc let name: String

        

        @objc init(name: String) {

            self.name = name

            super.init()

        }

        @objc func doSomething() -> Void {

            print("hello world!")

        }

    }

    4、如果要在swift中调用objc的类,只需要在Xcode自动生成的X-Bridging-Header.h 中包含objc类对应的头文件则可,这样就可以直接在swift中直接使用objc中的类。

    相关文章

      网友评论

          本文标题:swift与objc混编

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