笔记--NS_SWIFT_NAME与@objc区别与用途
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区别与用途的更多相关文章
- IOS 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...
- 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillA ...
- _视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...
- iOS 生命周期 -init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear 区别和用途
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...
- Java笔记——equals和==的区别
摔在这里几次,还是记下来吧. 原文:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452156.html -------------- ...
- java笔记---equals和==的区别
摔在这里几次,还是记下来吧.原文:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452156.html --------------- ...
- union、union all 、distinct的区别和用途
1.从用途上讲 它们都具有去重的效果 2.从效率上讲 distinct通常不建议使用,效率较低;union all 和union 而言,union all效率更高;原因是:union 相当于多表查询出 ...
- tensorflow 笔记12:函数区别:placeholder,variable,get_variable,参数共享
一.函数意义: 1.tf.Variable() 变量 W = tf.Variable(<initial-value>, name=<optional-name>) 用于生成一个 ...
- go语言学习笔记(一):*和&的区别
2018年04月15日 16:19:43 liudashuang2017 阅读数 2948更多 分类专栏: go 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文 ...
随机推荐
- SpringBoot 在IDEA中实现热部署(实用版)
转自https://www.jianshu.com/p/f658fed35786 具体步骤 一.开启IDEA的自动编译(静态) 具体步骤:打开顶部工具栏 File -> Settings -&g ...
- eclipse中maven工程添加本地库至Maven Dependencies
1.WEB-INF文件夹下添加lib文件夹,文件夹下添加demo-client-0.1-SNAPSHOT.jar 2.pom.xml中配置如下代码: <dependency> <gr ...
- 音悦台 api分析
用户订阅MV更新 http://uapi.yinyuetai.com/i/flw/subscribe-video-list?page=1&pageSize=200&uid=XXXXXX ...
- EZOJ #385 排列
分析 对于第一问我们直接从上到下枚举所有横边 每一次交换两边的列标号即可 对于第二问我们发现答案就是最终序列的逆序对数量 代码 #include<bits/stdc++.h> using ...
- VS code 同步设置与插件
准备工作:拥有一个github账户,电脑上需安装VSCode.实现同步的功能主要依赖于VSCode插件 "Settings Sync"第一步:安装同步插件Settings Sync ...
- 002-notepad++语言,编码,字体,背景色
一.基本操作 1.1.语言 Setting→Perferences→语言选择 1.2.默认编码 编码→使用UTF-8 无BOM编码 1.3.字体 “设置”-->“语言格式设置”-->“字体 ...
- CentOS修改网络设置,不容易啊,终于可以在virtualbox里上网了
CentOS 修改网关 修改对应网卡的网关的配置文件[root@centos]# vi /etc/sysconfig/network修改以下内容NETWORKING=yes(表示系统是否使用网络,一般 ...
- SqlServer 2012 AlwaysOn
第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnblogs.com/lyhabc/p/4682028.html第三篇htt ...
- 更新系统时间 & 查看/修改LINUX时区和时间
一.时区0. date '+%Y%M%D' 按照格式显示当前日期,结果如下: date "+%Y-%m-%d %H:%M:%S" 1. 查看当前时区 :[root@master ~ ...
- upc组队赛17 Stone Game【极小值】
Stone Game 题目链接 题目描述 Alice and Bob are always playing game! The game today is about taking out stone ...