美文网首页
笔记--NS_SWIFT_NAME与@objc区别与用途

笔记--NS_SWIFT_NAME与@objc区别与用途

作者: 蓝色的风 | 来源:发表于2019-11-29 10:34 被阅读0次

    swift中使用Selector经常要在方法前面添加@objc,除了默认的@objc,其实我们还可以添加自己制定的swift中调用的函数名

    @objc(pushToControllerName:params:)
    class func pushToController(_ name:String,params:[String:Any])  {
         print(params);
     }
    
    @objc中重新设置了调用这个方法的名称,在OC文件中必须使用下面的方法调用
    [ZJPushRouterTool pushToControllerName:@"PushViewController" params:@{@"name":@"zhang"}];
    

    只添加@objc 关键字不用修改对应的方法调用名称

    @objc class func pushToController(_ name:String,params:[String:Any])  {
        print(params);
     }
    //调用
    [ZJPushRouterTool pushToController:@"PushViewController" params:@{@"name":@"zhang"}];
    

    在OC文件中使用 NS_SWIFT_NAME()关键字来重新定义在swift中使用的方法名;

    +(instancetype)shareInstance NS_SWIFT_NAME(default());
    //在swift文件中调用
    Class.default()
    
    //如果不重新制定的话 还是使用Class.shareInstance()
    

    @objc和NS_SWIFT_NAME关键字的作用

    • NS_SWIFT_NAME:在objective-c中,重新命名在swift中的名称
    • @objc 在swift中,重新命名在objective-c中的名称。

    相关文章

      网友评论

          本文标题:笔记--NS_SWIFT_NAME与@objc区别与用途

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