黑马程序员IOS-OC语言-类的本质、SEL
来源:互联网 发布:剑三小令狐伤捏脸数据 编辑:程序博客网 时间:2024/05/17 22:25
——- android培训、java培训、期待与您交流! ———-
类的本质
类也是一个对象,是Class类型的对象,简称“类对象”
Class 类型的定义typedef struct objc_class *Class;
类名就代表着类对象,每个类只有一个类对象
方法 + load 和 + initialize
load
在程序启动时会加载所有的类和分类,并调用所有类和分类的 + load 方法(不论有没有用到该类)
调用优先级: 父类 -> 子类 -> 分类
initialize
在第一次使用某个类时,就会调用一次 + initialize 方法
一个类只会调用一次 + initialize 方法,先父类后子类 (super)
获取类对象的方式
1.Class c = [Person class]; // 直接调用类的class方法2.Person *p = [Person new];Class c2 = [p class]; // 间接调用对象的class方法
类对象调用类方法
Class c = [Person class];Person *p = [c new]; // 就是将类对象当做类名使用
description 方法
- description 方法> 使用 NSLog 和 %@ 输出某个对象时,会调用对象的 - description 方法输出+ description 方法> 使用 NSLog 和 %@ 输出某个类对象时,会调用类对象 + description 方法输出
修改 NSLog 的默认输出
重写 - description 或者 + description 方法即可
SEL
类型的定义:
typedef struct objc_selector *SEL;
类 —–> 方法 <==> SEL
SEL 对象的创建
// SEL 对象前没有 *1.SEL s = @selector(方法名); // 注意有参数的方法名会带有:2.SEL s = NSSelectorFromString(@"方法名"); // 获取字符串中的方法的SEL对象
SEL 对象的其他用法
// 将 SEL 对象转为 NSString 对象NSString *指针变量名 = NSStringFromSelector(@selector(方法名));// 通过 SEL 调用方法SEL s = @selector(方法名); // 获取对应方法名的 SEL 对象[对象名 performSelector : s]; // 对象调用 SEL 对象对应的方法
NSLog 输出增强
__FILE__ : 源代码文件名__LINE__ : NSLog代码所在行数__cmd : 代表着当前方法的SEL
——- android培训、java培训、期待与您交流! ———-
0 0
- 黑马程序员IOS-OC语言-类的本质、SEL
- 黑马程序员-OC语言核心语法(3)(分类、SEL、类本质)
- 黑马程序员——OC基础语法—类的本质和SEL类型
- 黑马程序员——OC语言学习——关键字id、构造方法、Category-分类、类的本质、 description方法、 SEL方法
- 黑马程序员-OC语言-类的本质(听课笔记)
- 黑马程序员一分类,类的本质,description,SEL
- 黑马程序员——OC核心语法3(分类、SEL、类本质等)
- 黑马程序员-OC-类的本质
- 黑马程序员---OC类的本质
- 黑马程序员——OC语言------OC特有语法:分类、description、类对象、SEL
- 13、黑马程序员-OC语言description方法和sel
- 黑马程序员-OC语言-SEL类型(听课笔记)
- 黑马程序员——8、OC语言(分类、类的本质)
- 黑马程序员——OC语言——分类和类的本质
- 黑马程序员IOS-OC语言-Foundation-类
- OC基础-类的本质+description+SEL
- 黑马程序员 _8 OC基础 id description sel的使用
- 黑马程序员-------OC----SEL和IMP
- vc++ Tree Control使用总结
- CAS实现单点登录(SSO)经典完整教程
- 分页控件中的数字按钮计算方法
- LeetCode 80 Remove Duplicates from Sorted Array II
- 第9周项目2-Time类中的运算符重载(续)
- 黑马程序员IOS-OC语言-类的本质、SEL
- ZOJ3299:Fall the Brick(区间更新)
- Stencil buffer is not enabled.的问题解决
- Mac电脑管理Android手机(传输文件)
- Android onTouchEvent事件
- Binary Tree Level Order Traversal II -- leetcode
- PHP---常用代码
- Nginx和Tomcat负载均衡实现session共享
- 802.15.4的MacPayload最大长度