NSObject基類的方法
+(void) load
功能:類加載到運(yùn)行時(shí)環(huán)境時(shí)發(fā)送該消息
</br>
說明:在類沒有實(shí)例化對(duì)象的時(shí)候肮蛹,該方法已經(jīng)被調(diào)用。即使這個(gè)類在程序中沒有被使用创南,它也會(huì)加載伦忠。換句話說,當(dāng)應(yīng)用程序執(zhí)行的啟動(dòng)的時(shí)候稿辙,若程序是為iOS平臺(tái)設(shè)計(jì)的昆码,則肯定會(huì)在此時(shí)執(zhí)行,而且僅調(diào)用一次。 (執(zhí)行該方法時(shí)赋咽,運(yùn)行期系統(tǒng)處于“脆弱狀態(tài)”旧噪,在load方法中使用其他類是不安全的)。
</br></br>
+(void)initialize
功能:在程序首次用該類之前調(diào)用冬耿,且只調(diào)用一次舌菜。
</br>
說明:它是惰性的,只用當(dāng)程序用到相關(guān)的類時(shí)亦镶,才會(huì)調(diào)用日月;如果某一個(gè)類一直都沒有使用,那么initialize方法一直不會(huì)運(yùn)行缤骨。另外爱咬,當(dāng)執(zhí)行這個(gè)方法的時(shí)候,運(yùn)行期系統(tǒng)已經(jīng)是處于正常狀態(tài)绊起,此時(shí)可以安全使用并調(diào)用任意類中的任意方法精拟。最后,initialize方法與其他消息一樣虱歪,如果某個(gè)類未實(shí)現(xiàn)它蜂绎,而其超類實(shí)現(xiàn)了,那么就會(huì)運(yùn)行超類的實(shí)現(xiàn)代碼(調(diào)用兩次笋鄙,一次為自己师枣,一次為自己的子類)。
</br></br>
-(instancetype)init
功能:對(duì)已經(jīng)分配了內(nèi)存的實(shí)例進(jìn)行初始化萧落,(相當(dāng)于便利初始化函數(shù))践美,可以重寫默認(rèn)的便利初始化函數(shù),加一些自定義的參數(shù)
</br></br>
+ (instancetype)new
功能:同時(shí)調(diào)用alloc和init函數(shù)
</br></br>
+ (instancetype)allocWithZone:(struct _NSZone *)zone
功能:使用自定的NSZone來創(chuàng)建自己的實(shí)例找岖。已廢除陨倡,不建議使用。
+ (instancetype)alloc
功能:返回一個(gè)已經(jīng)分配好內(nèi)存的對(duì)象
</br>
說明:但是內(nèi)存中的實(shí)例變量只是默認(rèn)值
</br></br>
-(void)dealloc
功能:釋放對(duì)象自己的內(nèi)存许布,釋放對(duì)象所控制的資源兴革,包括所有實(shí)例變量的所有權(quán)。
</br>
說明:當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)為0時(shí)爹脾,系統(tǒng)自動(dòng)向?qū)ο蟀l(fā)送一條dealloc消息帖旨;可以重寫dealloc方法釋放對(duì)象內(nèi)部已經(jīng)分配好的全部相關(guān)資源。dealloc方法不能直接調(diào)用灵妨,而是有系統(tǒng)在銷毀對(duì)象時(shí)調(diào)用。
- (void)finalize
已廢除
</br></br>
- (id)copy
功能:發(fā)送接收者定義的copyWithZone:zone消息落竹,消息接收者需要實(shí)現(xiàn)NSCopying協(xié)議
</br>
說明:返回一個(gè)通過copyWithZone:創(chuàng)建的實(shí)例
</br></br>
-(id)mutableCopy
功能:發(fā)送接收者定義的mutableCopyWithZone:zone消息泌霍,消息接收者需要實(shí)現(xiàn)NSMutableCopying協(xié)議
</br>
說明:返回一個(gè)通過mutableCopyWithZone:創(chuàng)建的實(shí)例
</br></br>
+ (id)copyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE
功能:copy操作實(shí)際所調(diào)用的方法,可以重寫此方法,定義對(duì)象的copy操作
</br>
說明:該方法是NSCopying協(xié)議的方法
+ (id)mutableCopyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE
功能:mutableCopy操作實(shí)際所調(diào)用的方法朱转,可以重寫此方法蟹地,定義對(duì)象的mutableCopy操作
</br>
說明:該方法是NSMutableCopying協(xié)議的方法
+ (BOOL)instancesRespondToSelector:(SEL)aSelector
功能:判斷某個(gè)類的實(shí)例是否相應(yīng)某消息
</br>
說明: 不需要一個(gè)Class類的實(shí)例instance就可以通過這個(gè)類的方法獲知Class的實(shí)例是不是有相關(guān)selector的實(shí)現(xiàn)
+ (BOOL)conformsToProtocol:(Protocol *)protocol
功能:判斷是否遵從一個(gè)給定的協(xié)議
</br></br>
- (IMP)methodForSelector:(SEL)aSelector
功能:返回接收者實(shí)現(xiàn)該方法的地址,調(diào)用者可以是實(shí)例對(duì)象也可以是類對(duì)象藤为,函數(shù)返回結(jié)果的類型可能是實(shí)例函數(shù)指針怪与,也可能是類函數(shù)指針。
</br></br>
+ (IMP)instanceMethodForSelector:(SEL)aSelector
功能:根據(jù)指定的sSelector缅疟,遍歷類的實(shí)例方法列表分别,返回對(duì)應(yīng)的函數(shù)指針
</br></br>
- (void)doesNotRecognizeSelector:(SEL)aSelector
功能: 當(dāng)不存在aSelector是進(jìn)行異常處理,會(huì)使用這個(gè)函數(shù)
</br></br>
- (id)forwardingTargetForSelector:(SEL)aSelector OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:在消息轉(zhuǎn)發(fā)第二階段懂昂,【備援接收者】這一步囚戚,將不能不能處理的未知選擇子轉(zhuǎn)發(fā)給其他接收者處理
</br></br>
- (void)forwardInvocation:(NSInvocation *)anInvocation
功能:在消息轉(zhuǎn)發(fā)第二階段潭兽,【完整消息轉(zhuǎn)發(fā)】這一步,將尚未處理的消息有關(guān)的全部細(xì)節(jié)封裝到NSInvocation對(duì)象中括授,再將消息指派給目標(biāo)對(duì)象。這種方式可以改變消息內(nèi)容岩饼,比如追加另外一個(gè)參數(shù)荚虚,或者改換選擇子。
</br></br>
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
功能: 返回NSMethodSignature對(duì)象籍茧,這個(gè)對(duì)象包含被標(biāo)示的實(shí)例方法的描述版述。和- (void)forwardInvocation:搭配使用
</br></br>
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
功能:同- (NSMethodSignature *)methodSignatureForSelector,只是為類方法
</br></br>
+ (BOOL)isSubclassOfClass:(Class)aClass
功能:判斷是否為aClass的子類
</br></br>
+ (BOOL)resolveClassMethod:(SEL)sel OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:消息轉(zhuǎn)發(fā)的第一階段硕糊,【動(dòng)態(tài)方法解析】院水,調(diào)用此類看看是否能為此類增加一個(gè)實(shí)例方法來處理選擇子。
</br></br>
+ (BOOL)resolveInstanceMethod:(SEL)sel OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:同+ (BOOL)resolveClassMethod:简十,消息轉(zhuǎn)發(fā)的第一階段檬某,【動(dòng)態(tài)方法解析】,調(diào)用此類看看是否能為此類增加一個(gè)類方法來處理選擇子螟蝙。
</br></br>
+ (NSUInteger)hash
功能:返回一串?dāng)?shù)恢恼,代表對(duì)象的hash值
</br></br>
+ (Class)superclass
功能: 返回當(dāng)前類的父類
</br></br>
+ (Class)class
功能:返回當(dāng)前類
</br></br>
+ (NSString *)description
功能:返回字符串形式對(duì)象的描述,描述中包含了對(duì)象的詳細(xì)信息(方便用于調(diào)試
</br></br>
+ (NSString *)debugDescription
功能:description是我們?cè)诔绦蛑写騆og會(huì)調(diào)用的方法胰默,debugDescription則是我們?cè)跀帱c(diǎn)調(diào)試時(shí)场斑,在控制臺(tái)使用po命令打印會(huì)調(diào)用的方法