oc-sel 数据类型

SEL 其实是对方法的一种包装,将方法包装成SEL类型的数据,去找对应的方法地址,然后调用对应的方法。

通过方法名的字符串 调用方法:

 

每一个方法中都默认还有一个sel 为_cmd

 

时间: 2024-10-26 05:01:37

oc-sel 数据类型的相关文章

SEL数据类型,@selector的用法,以及调用SEL

1.SEL数据类型 SEL是个指针类型的数据,类似C语言中的函数指针.在OC中,每个对象方法都有其对应着一个SEL变量.当我们调用对象方法时,编译器会将该方法转换成一个SEL的数据,然后去类中寻找该方法对于的SEL.(这里涉及的深层原理本文没有深究,本文仅仅将SEL以及@selector的使用) [email protected]的用法 @selector(方法名),该函数返回一个SEL类型的数据,因此可以这样使用.假设Person类中有一对象方法叫做run().而我们可以这样调用它: 1 SE

OC常用数据类型大全解

UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动画转场用的很多 Blocks的定义 Blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { re

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

// //  main.m //  SEL数据类型 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" /* SEL数据类型,使用来包装方法的 */ int main(int argc, const char * argv[]) { @aut

Description方法&amp;&amp;SEL数据类型

description方法和sel数据类型 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打

OC的数据类型补充

OC的数据类型补充 1. Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或者返回值 苹果官方建议尽量多用Block.在多线程.异步任务.集合遍历.集合排序.动画专场用的很多 Block跟函数很像: 可以保存代码 有返回值 有形参 调用方式一样 补充词汇:templates 模板.minus减法 //定义Block变量 void(^myblock)() = ^{ NSLog(@"--------------------

oc之数据类型转换规则

对含所有不同类型数据的表达式求值时,Objective-C编译器会遵循一些非常严格的规则,下面总结了表达式求值的过程中,不同类型的操作数发生转换的先后顺序: 1.如果其中一个操作数是long double类型的,另一操作数被转为long double型,则计算结果也是这种类型. 2.如果其中一个操作数是double型,另一操作数转换为double型,则计算结果也是这种类型. 3.如果其中一个操作数是float型,另一操作数转换为float型,则计算结果也是种类型. 4.如果其中一个操作数是Boo

【OC加强】SEL数据类型的简单知识点——和方法有关

(1)类里面的方法都是被转换成SEL变量进行存储的. (2)放类声明一个对象,对象调用方法的时候,系统会被这个方法转换成SEL,然后拿这个SEL到类方法中去匹配. (3)我们可以自己手动把方法转换成SEL,然后用这个SEL去查找方法. #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person

oc基本数据类型

布尔数据类型 BOOL(YES(1)/NO(0)) NSLog() 等同于 printf()NS: 来源于工具包还被称为NextSTEP的时候 使用前缀避免名称冲突.NSLog(@"Hello,Objective-C!”); 基本上所有的变量都是以@开头.字符串使用@开头.@符号意味着引号内的字符串应作为Cocoa的NSString元素来处理oc中的@符号看成是对C语言的扩展. for(int i=0;i<5;i++){ NSLog(@"%d\n",i);} NSLog

OC基础数据类型之字符串,数组和字典

//-------------字符串----------------- //字符串的初始化: //1: NSString *string = @"我是非凡程序员!"; NSLog(@"%@",string); //2: NSString *string2 = [NSString stringWithFormat:@"我在非凡学习了%i个月",1]; NSLog(@"%@",string2); //输出字符串长度: long l

OC基础数据类型之NSNumber

假如你能够很轻松的理解NSString的定义和用法,那么NSNumber的话联想一下你就大概能够明白其中的道理和关系了. 首先你必须知道C语言的基础数据类型在OC中不是所有地方都支持使用,那么碰到例如copy等不支持使用的情况,我们就必须用OC的基本数据类型了. 那么OC的基本数据类型是什么?其实它就是将C语言的数据类型全部打包封装到了一个类里面.这个类里面各种各样的C语言基础数据类型都有,例如int,float,double等 当然OC里NSNumber的功能相对要强大很多,它不仅仅包含了C的