1.SEL数据类型

SEL是个指针类型的数据,类似C语言中的函数指针。在OC中,每个对象方法都有其对应着一个SEL变量。当我们调用对象方法时,编译器会将该方法转换成一个SEL的数据,然后去类中寻找该方法对于的SEL。(这里涉及的深层原理本文没有深究,本文仅仅将SEL以及@selector的使用)

2.@selector的用法

@selector(方法名),该函数返回一个SEL类型的数据,因此可以这样使用。假设Person类中有一对象方法叫做run()。而我们可以这样调用它:

SEL f1 = @selector(run);

Person* Tom = [[Person alloc] init];

[Tom performSelector:f1]; // 调用run方法

3.调用SEL

每个方法都有自己的一个SEL变量成_cmd,在方法内部调用它,可以打印出该方法名。具体方法如下:

- (void)test

{

NSLog("%@", NSStringFromSelector:_cmd); // 打印出:test

}

原理是调用NSStringFromSelector将_cmd转换成字符串再打印。同时performSelector还有传入参数的版本,具体请参考Xcode中的OC文档。

总结:SEL就是一个数据类型,调用@selector()可以将任何数据转换成SEL数据,同时调用performSelector系列的对象方法可以调用SEL对应的方法。

SEL数据类型

// //  main.m //  06-SEL数据类型 // //  Created by apple on 14-3-18. //  Copyright (c) 2014年 apple. All ...

小白学开发(iOS)OC_ SEL数据类型(2015-08-10)

// //  main.m //  SEL数据类型 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All rig ...

[Objective-c 基础 - 2.11] SEL数据类型

A.概念 1.SEL类型代表方法 2.每个方法都有一个对应的SEL类型的数据 3.实例对象调用方法 (1)编译器会把类的方法包装成SEL类型的数据, (2)根据SEL数据找到方法地址,缓存此地址 (3 ...

Selector API用法

java.nio.channels 类 Selector java.lang.Object java.nio.channels.Selector 直接已知子类: AbstractSelector pu ...

Android中Selector的用法(改变ListView和Button的默认背景)

Android中的Selector的用法 http://blog.csdn.net/shakespeare001/article/details/7788400#comments Android中的S ...

Android菜鸟成长记9 -- selector的用法

在项目开发的时候,由于系统给出的控件不够美观,因此开发时领导常常要我更改下界面,用美工给的图片取代系统图片.开始时,我只是给按钮等设置一下背景图片,这样做虽然美观了,但界面看起来却比较死板,比如用户点 ...

selector 的用法,在选择和不选择情况下的颜色

在res/drawable文件夹新增一个文件,此文件设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected, ...

python数据类型之int用法

1.查看整型的用法 CODE:print(dir(int))['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', ...

随机推荐

HashMap和Hashtable及HashSet的区别

相关文章1:HashSet,TreeSet和LinkedHashSet的区别 相关文章2:HashSet和TreeSet的区别 Hashtable类     Hashtable继承Map接口,实现一个 ...

HTML文档类型声明的坑...

如果发现js莫名其妙的报错(比如demo不报错,自己写的就报错),或者样式显示不正常,一定记得检查HTML页面里面加没加如下文档声明: /p>

centos5.5下mangodb启动报错glibc

mangodb启动报错glibc找不到(centos5.5) 报错形式 [root@test-172-16-0-139-ip mongodb-server]# /data/mongodb-server ...

MySQL巧用自定义函数进行查询优化

用户自定义变量是一个很容易被遗忘的MySQL特性,但是用的好,发挥其潜力,在很多场景都可以写出非常高效的查询语句. 一. 实现一个按照actorid排序的列 mysql; Query OK, rows ...

BYS推荐MS前端PhoneCall面试问题整理-1

1. SQL: 查出产品对应的销售数量,会用到2个表之间的连接: select Products.ProductName, Sales.SalesAmount from Product left ou ...

[HAOI2010]订货 BZOJ2424

分析: 能看出来,这是一个费用流的题,建图很朴实,i连i+1,费用为存储费用,流量为仓库容量,之后S连i,费用为单价,流量为inf,之后i连T,流量为a[i],费用为0,之后裸上费用流... 附上代码 ...

git——添加远程库

添加远程库 阅读: 406682 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以 ...

[ 总结 ] Linux系统启动流程

Linux系统启动过程分析: 按下电源 --> BIOS自检 --> 系统引导(lilo/grub) --> 启动内核 --> 初始化系统 --> 用户登录 1. BIO ...

c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL相关推荐

  1. int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处

    C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...

  2. c语言int作用,c语言中int的用法

    C/C++编程语言中,int表示整型变量,是一种数据类型,下面学习啦小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. c语言中int的用法:整型int C 语言提供了很多整数类型(整型), ...

  3. C语言中int、long等类型所占的字节数

    C语言中int.long等类型所占的字节数.实验环境是win10,64位操作系统. #include<stdio.h> int main() {printf("sizeof(in ...

  4. c语言int作用,c语言中int的用法有哪些

    c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...

  5. c语言中int作用,c语言中int的用法(5页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 c语言中int的用法 C/C++编程语言中,int表示整型变量,是一种数据类型,下面小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. ...

  6. c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...

    16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...

  7. c语言数据类型 占字节最少,C语言中int型是所占字节最短的数据类型。

    C语言中int型是所占字节最短的数据类型. 更多相关问题 [单选,A1型题] 满而不痛者,此为痞,载于() [单选,A4型题,A3/A4型题] 钱某,男,16岁,近日因饮酒饱食后出现胃脘胀满疼痛,嗳腐 ...

  8. c语言中argc的作用,C语言中 int main(int argc,char *argv[])的两个参数详解

    C语言中 int main(int argc,char *argv[])的两个参数详解 argc是命令行总的参数个数: argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数.命令行后面 ...

  9. c语言中a*=2*a 1,c语言中int a=2;a+=a*=a-=a*=3;printf("%d",a);怎么做?详细过程

    题目: c语言中int a=2;a+=a*=a-=a*=3;printf("%d",a);怎么做?详细过程 解答: 首先a赋值为2: 然后计算a*=3,此时a为6: 然后计算a-= ...

  10. c语言int16位数据范围,c语言中int取值范围为16位指的是什么16位

    1.c语言中int取值范围为16位指的是什么16位 计算机用二进制表示数值,最小单位就是位(bit),可以储存0或1,16位就是有16个储存0或1的位,其中左边第一位是符号位,0代表+ .1代表-. ...

最新文章

  1. Aveva Marine C# 二次开发入门001
  2. 基于Selenium2与Python自动化测试环境搭建
  3. linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈
  4. Python 实现链表和二叉树
  5. poj 2777(线段树的节点更新策略)
  6. linux 内核设备管理模型sysfs(进阶篇)
  7. 国外ARM开发网站列表
  8. 网页上的播放器相关参数说明
  9. eterm 汉字编码一点也不难
  10. 计算机二级C语言判断标准,2012年计算机等级考试二级C语言常见问题:标准输入输出库...
  11. 一种简单的JS加密解密方法
  12. jsdroid 教程_南方Cass专题,全系列教程+插件汇总打包
  13. 使用wininet的InternetReadFile下载文件
  14. 【电脑故障】打印机驱动程序无法使用且print spooler错误1068
  15. Pygame 官方文档 - pygame.mixer
  16. window上装python,pip
  17. C语言(一):C语言概述介绍
  18. MySql无法连接本地地址localhost
  19. configure.ac(configure.in)内容详解
  20. C语言实现TCP网络通信

热门文章

  1. java bridge_JavaBridge
  2. 反垃圾邮件企业邮箱设置(TXT记录)
  3. Looking for the Devil in the Details
  4. 什么是抗攻击服务器?抗攻击服务器是如何防御攻击的?
  5. python爬取在线视频思路,用python实现多线程爬取影视网站全部视频方法【笔记】...
  6. AsyncTask我来给你扯会蛋
  7. SpringBoot整合MybatisPlus
  8. 鸡年年终总结汇报PPT模板
  9. pdf.js上传有盖章文件盖章不显示
  10. Matlab---示波器Scope-Measurements