一、class、superclass
- class方法、最终实现都是在NSObject中实现的;
-
object_getClass(id _Nullable obj)
传入一个对象返回类的类型 - class的实现
- (Class)class {
return object_getClass(self);
}
- superclass的实现
- (Class)superclass {
return class_getSuperclass(object_getClass(self)); // 取决于消息的接收者;
}
二、super
-
super 接收两个对象、一个是id receiver即是消息接收者,另一个是current_class
- super 决定的是从父类开始查找方法的实现;
- 消息的接收者仍是子类的对象;
- current_class是receiver的Class对象;
三、其他关键字
- @synthesize: 自动生成setter、getter、及成员变量
- @dynamic: 提醒编译器不要生成setter、getter、及成员变量;运行时自己添加
- IMP:函数地址;
- c语言的函数地址就是函数名称
- 方法签名:方法的返回值、参数类型;
- NSInvocation封装了一个方法调用,包括:方法调用者、方法名、方法参数
- invoke:调用
谨以此作为平时一些心得记录,有不足之处各位大佬批评指正,不胜感激