笔记--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版权协议,转载请附上原文 ...
随机推荐
- Spark在MaxCompute的运行方式
一.Spark系统概述 左侧是原生Spark的架构图,右边Spark on MaxCompute运行在阿里云自研的Cupid的平台之上,该平台可以原生支持开源社区Yarn所支持的计算框架,如Spark ...
- C++创建对象时什么时候用*,什么时候不用*
用*, 表示创建的是一个指针对象,而指针的创建,必须初始化,C++中用new关键字开辟内存. 另外指针对象访问成员变量用-> , 非指针用. 就这么个原则 但是指针也可以不用-> 例如 ( ...
- 演示Git使用
对于新建的repository,第一次提交,完整过程: 13643@DESKTOP-K6CS6SE MINGW64 ~/Desktop/555 $ ls Readme.md run.py 13643@ ...
- Python全栈开发,Day2
一.Pycharm的使用 1.创建项目 2.python调整字体大小随ctrl+鼠标滚轮上下滚动 3.python新建程序自动补全编码和环境 4.设置断点(在代码前面行号后面单击鼠标左键) 5.调试断 ...
- 解决kubernetes拉取不了镜像仓库的问题
将镜像仓库地址k8s.gcr.io改成registry.aliyuncs.com/google_containers
- BaseFragment 基类
package com.test.mvp.mvpdemo.mvp.v6.basemvp; import android.os.Bundle;import android.support.annotat ...
- map()函数用法
需求:已知两个列表,现在要一个列表中的元素,分别全部插入另一个列表中,新列表是[[0, 9, 1], [0, 9, 2], [0, 9, 3], [0, 9, 4], [0, 9, 5], [0, 9 ...
- ELK 日志系统入门及通过 Docker 部署
1. ELK 系统是什么 ELK 是一套日志中心解决方案,其三个字母分别表示: Elasticsearch:负责日志存储及检索 Logstash:负责日志收集.过滤及格式化 Kibana:数据看板,负 ...
- 理解jquery的$.extend()、$.fn.extend()【jQuery插件机制】
/** * 操作数据 | DOM 操作 * @description jQuery类添加类方法,可以理解为添加静态方法,将一个或多个对象的内容合并到目标对象 * @use $.fn.zhang() | ...
- 写的一个双向链表,测试OK
#include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct DoubleLi ...