oc41--SEL】的更多相关文章

 id id是指向Objective-C对象的指针,等价于C语言中的void*,可以映射任何对象指针指向他,或者映射它指向其他的对象.常见的id类型就是类的delegate属性. SEL SEL类型是Objective-C用来定义方法的关键字,但却从不属于任何类实例,其值是通过@selector进行计算,可以把她当做一个函数指针来使用,但实际上的类型是const char*.SEL类系可以在编译时通过@selector()直接创建,也可以用NSSelectorFromString()函数创建,这…
SEL就是对方法的一种包装.包装的SEL类型数据它对应相应的方法地址,找到方法地址就可以调用方法.在内存中每个类的方法都存储在类对象中,每个方法都有一个与之对应的SEL类型的数据,根据一个SEL数据就可以找到对应的方法地址,进而调用方法. @interface Person : NSObject + (void)test1; - (void)test2; @end // 根据.h文件中定义的Person类和方法 执行完这行代码 在内存中如下 Person *person = [[Person a…
OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打…
在Objective-C中,选择器(selector)有两个意思. 一是指在代码中的方法的名称.二是指在编译是用于替换方法名称的唯一的标识符.编译后的选择器的为SEL类型.所有名称相同的方法拥有同一个选择器.通过使用选择器可以调用对象的一个方法.这是Cocoa中目标-动作这一模式能得以实现的基础. 方法和选择器 出于效率的考虑,编译后的代码中并不是使用ASCII码表示的方法名称来作为方法的选择器的.编译器会把每一个方法的名称写入到一张表中:然后用唯一的一个标识符与之结对,这样来表示运行时的方法.…
// //  main.m //  06-SEL数据类型 // //  Created by apple on 14-3-18. //  Copyright (c) 2014年 apple. All rights reserved. // #import <Foundation/Foundation.h> /* SEL数据类型是用来包装方法的 */ #import "Person.h" int main(int argc, const char * argv[]) { @a…
SEL is a type that represents a selector in Objective-C. The @selector() keyword returns a SEL that you describe. It's not a function pointer and you can't pass it any objects or references of any kind. For each variable in the selector (method), you…
OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3805270.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 有的时候我们会需要把SEL放在NSArray.NSDictionary等集合类型里,比如开新线程执行某函数,传多个参数的时候.但是SEL是不能直接作为NSArray成员的. 可以将它转化为NSString,然后再转化回来.假设SEL名为callback. 转化为NSString: NSStrin…
@interface Person : NSObject + (void)test1; - (void)test2; @end // 根据.h文件中定义的Person类和方法 执行完这行代码 在内存中如下 Person *person = [[Person alloc] init]; SEL就是对方法的一种包装.包装的SEL类型数据它对应相应的方法地址,找到方法地址就可以调用方法 1.方法的存储位置 在内存中每个类的方法都存储在类对象中 每个方法都有一个与之对应的SEL类型的数据 根据一个SEL…
一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load 先加载元原始类,再加载分类 不管程序运行过程有没有用到这个类,都会调用+…