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

description方法 #import "Person.h" @implementation Person - (void) setAge : (int) age { _age = age; } /** 决定了实例对象的输出结果 **/ - (NSString *) description { return [NSString stringWithFormat : @"age=%i", _age]; } /** 决定了类对象的输出结果 **/ + (NSStri…
一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load 先加载元原始类,再加载分类 不管程序运行过程有没有用到这个类,都会调用+…
[Objective-C]07-自定义构造方法和description方法   // 构造方法:用来初始化对象的方法,是个对象方法,”-"开头// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值/* 重写构造方法的注意点1.先调用父类的构造方法([super init])2.再进行子类内部成员变量的初始化 */ // 重写-init方法//- (id)init//{//    // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性//   …
一. 分类-Category 1. 基本用途:Category  分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Category) 2. 格式 ➢ 分类的声明 @interface 类名 (分类名称) // 方法声明 @end ➢ 分类的实现 @implementation 类名 (分类名称) // 方法实现 @end 3. 好处 ➢ 一个庞大的类可以分模块开发 ➢ 一个庞大的类可以由多个人来编写,更有利于团队合作 ➢ …
1.什么是SEL类型 SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系 每个类的方法列表都存储在类对象中 每个方法都有一个与之对应的SEL类型的对象 根据一个SEL对象就可以找到方法的地址,进而调用方法 SEL类型的定义 typedef struct objc_selector *SEL; 首先把test这个方法名包装成sel类型的数据 根据SEL数据到该类的类对象中,去找对应的方法的代码,如果找到了就执行该代码 如果没有找到根据类对象上的父类的类对象指针,去父类…
一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打印对象如(“@%”,P)默认打印输出为<类名…
发现非常多刚開始学习的人无法区分bool和BOOL及class类型,今天闲来无事.写个博文做个区分 1. bool是C语言的布尔类型.有true和false,BOOL是Objective C 语言的布尔类型.有YES和NO,由于OC能够跟C混编,所以bool和BOOL能够同一时候出如今代码中 2. BOOL深入解析: BOOL实际上是带符号的字符类型,存储空间为8位,所以假设把一个32位的整数赋给BOOL.仅仅会取末8位. BOOL类型中YES定义为1,NO定义为0,在内存存数据时,并不会存YE…
特别注意: 千万不要在description方法中同时使用%@和self,同时使用了%@和self,代表要调用self的description方法,因此最终会导致程序陷入死循环,循环调用description方法 1.NSLog回顾   大家都知道,我们可以用NSLog函数来输出字符串和一些基本数据类 1 int age = 11; 2 NSLog( @" age is %d", age); * 第2行的%d代表会输出一个整型数据,右边的变量age会代替%d的位置进行输出 * 输出结果…
类的本质 1. 类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class  *Class; 类名就代表着类对象,每个类只有一个类对象 2. +load和+initialize +load l   在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 l   先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load l   先加载元原始类,再加载分类 l   不管程序运…
知识回顾 在前面已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject { 4 int _age; 5 } 6 - (void)setAge:(int)age; 7 - (int)age; 8 @end 2.Student.m 1 #import "Student.h" 2 3 @implementa…