Objective-C description方法 SEL类型

description方法

#import "Person.h"

@implementation Person
- (void) setAge : (int) age {
    _age = age;
}

/** 决定了实例对象的输出结果 **/
- (NSString *) description {
    return [NSString stringWithFormat : @"age=%i", _age];
}

/** 决定了类对象的输出结果 **/
+ (NSString *) description {
    return @"ABC";
}
@end

//默认情况下(不重写) 使用NSLog和%@输出对象时 结果是: <类名: 内存地址>
//会调用对象的-description方法
//拿到-description方法的返回值(NSString *)显示到屏幕上
//-description方法默认返回的是"类名 + 内存地址";
//便于观察结果 一般重写父类的-description方法

SEL类型

1.方法的存储位置

每个类的方法列表都存储在类对象中

每个方法都有一个与之对应的SEL类型的对象

根据一个SEL对象就可以找到方法的地址 进而调用方法

2.SEL对象的创建

SEL s = @selector(方法名);

SEL s2 = NSSelectorFromString(@"test");

3.SEL对象的其他用法

将SEL对象转为NSString对象

NSString *str = NSStringFromSelector(@selector(方法名));

根据SEL调方法

[p performSelector : @selector(方法名)];

[p performSelector : @selector(方法名) withObject : 实际参数];

[self performSelector : _cmd]//会引发死循环 _cmd代表着当前方法

时间: 2024-10-11 23:21:20

Objective-C description方法 SEL类型的相关文章

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

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

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

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

自定义构造、description方法、SEL

[Objective-C]07-自定义构造方法和description方法 // 构造方法:用来初始化对象的方法,是个对象方法,”-"开头// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值/* 重写构造方法的注意点1.先调用父类的构造方法([super init])2.再进行子类内部成员变量的初始化 */ // 重写-init方法//- (id)init//{//    // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性//    se

类的本质、description方法、SEL、NSLog输出增强

一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load 先加载元原始类,再加载分类 不管程序运行过程有没有用到这个类,都会调用+

iOS开发之oc(十)--类的本质、description、SEL

(一)类的本质 1.类也是个对象 其实类也是一个对象,是Class类型,简称“类对象”. // Class类型的定义 typedef struct objc_class *Class; // 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load >  在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 >先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load >先加载元原始类,再加载分类 >不管程序

10-Objective-C特有语法:Category、类对象、description、SEL、NSLog输出增强

一.    分类-Category 1.        基本用途 OC中如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 1>.继承 2>.分类(Category) 2.        格式 分类的声明 @interface 类名 (分类名称) // 方法声明 @end 分类的实现 @implementation 类名 (分类名称) // 方法实现 @end 3.        好处 一个庞大的类可以分模块开发,可以由多个人来编写,更有利于团队合作 给系统自带的类添加分类,例如:

OC中description、 SEL、类本质、self和super用法

一:description方法 description有对象方法和类方法两种,(是NSObject类的方法) 1,-description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出.(系统会自动调用打印对象的description方法) 而如果打印NSString对象的话,默认返回的就是NSString字符串 2,+description (类方法) 使用NSLog和@%输出某个类时,会调用类的description类方法,并拿

&lt;&lt;黑马程序员&gt;&gt;description方法

- (NSString *)description方法 ① 默认情况下当使用NSLog和%@输出某个对象时,默认输出类名+对象地址 ② 就会调用对象的- (NSString *)description方法 ③  拿到- (NSString *)description方法的返回值进行输出,默认是类名+对象地址 + (NSString *)description方法 ① 默认情况下当使用NSLog和%@输出某个类对象时,默认输出类名 ② 就会调用对象的+ (NSString *)descriptio

黑马程序员— OC核心语法之构造方法、Category分类、类的本质、description和SEL

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一章我们学习了OC的一些核心语法,初步了解了OC作为一门开发语言的一些较为深层次的知识.本章我们继续学习OC的核心语法,主要包括OC的构造方法,Category分类,类的本质及深入研究,以及description关键字和SEL关键字. 第一讲     构造方法 1. 构造方法 构造方法是用来初始化对象的方法,是一个对象方法,以减号"-"开头,构造方法其实就是init方法,初始化完毕