一储狭、class互婿、superclass
- class方法、最終實(shí)現(xiàn)都是在NSObject中實(shí)現(xiàn)的辽狈;
-
object_getClass(id _Nullable obj)
傳入一個(gè)對象返回類的類型 - class的實(shí)現(xiàn)
- (Class)class {
return object_getClass(self);
}
- superclass的實(shí)現(xiàn)
- (Class)superclass {
return class_getSuperclass(object_getClass(self)); // 取決于消息的接收者慈参;
}
二、super
-
super 接收兩個(gè)對象刮萌、一個(gè)是id receiver即是消息接收者驮配,另一個(gè)是current_class
image.png - super 決定的是從父類開始查找方法的實(shí)現(xiàn);
- 消息的接收者仍是子類的對象着茸;
- current_class是receiver的Class對象壮锻;
三、其他關(guān)鍵字
- @synthesize: 自動(dòng)生成setter涮阔、getter猜绣、及成員變量
- @dynamic: 提醒編譯器不要生成setter、getter敬特、及成員變量途事;運(yùn)行時(shí)自己添加
- IMP:函數(shù)地址验懊;
- c語言的函數(shù)地址就是函數(shù)名稱
- 方法簽名:方法的返回值、參數(shù)類型尸变;
- NSInvocation封裝了一個(gè)方法調(diào)用义图,包括:方法調(diào)用者、方法名召烂、方法參數(shù)
- invoke:調(diào)用
謹(jǐn)以此作為平時(shí)一些心得記錄碱工,有不足之處各位大佬批評指正,不勝感激