NSObject基類的方法

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)用的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容