1、+load方法當類或分類添加到object-c runtime時被調用,子類的+load方法會在它所有父類的+load方法之后執行,而分類的+load方法會在它的主類的+load方法之后執行。但不同的類之間的+load方法的調用順序是不確定的,所以不要在此方法中用另一個類。 2、+load ...
過去兩個星期里,為了完成一個工作,接觸到了NSObject中非常特別的兩個類方法 Class Method 。它們的特別之處,在於iOS會在運行期提前並且自動調用這兩個方法,而且很多對於類方法的規則 比如繼承,類別 Category 都有不同的處理。 而因為這兩個方法是在程序運行一開始就被調用的方法,我們可以利用他們在類被使用前,做一些預處理工作。比如我碰到的就是讓類自動將自身類名保存到一個NSD ...
2012-09-29 12:35 12 41746 推薦指數:
1、+load方法當類或分類添加到object-c runtime時被調用,子類的+load方法會在它所有父類的+load方法之后執行,而分類的+load方法會在它的主類的+load方法之后執行。但不同的類之間的+load方法的調用順序是不確定的,所以不要在此方法中用另一個類。 2、+load ...
一,Objective C 的類方法(class method),即 static 方法,是用 + 修飾的方法。類方法是屬於類對象的,所以無需創建類的實例對象我們就可以直接使用它們。使用形式為: [ClassName classMethod]; 在這里 ClassName 代表的就是一個類 ...
可能有些還不清楚load和initialize的區別,下面簡單說一下: 首先說一下 + initialize 方法:蘋果官方對這個方法有這樣的一段描述:這個方法會在 第一次初始化這個類之前 被調用,我們用它來初始化靜態變量. initialize方法的調用時機,當向該類發送第一個消息(一般是類 ...
initialize不是init initialize在這個類第一次被調用的時候比如[[class alloc]init]會調用一次initialize方法,不管創建多少次這個類,都只會調用一次這個方法,我們用它來初始化靜態變量,而init方法是只要這個類被調用,就會調用這個init方法,這個類 ...
在 iOS 開發中,我們經常會使用 +load 方法來做一些在 main 函數之前的操作,比如方法交換(Method Swizzle)等。現在分析一下load方法跟initialize方法的調用順序以及區別。 1.先看下load方法 嘗試定義一個繼承自 NSObject 的 Person 類 ...
事實上在OC的對象方法(減號方法)和類方法(加號方法)並非相互獨立的,它們也能夠發生千絲萬縷的關系,今天我們來研究下它們兩者相互調用的問題。該樣例還是以People類為基礎。 (一)對象方法調用類方法: (1)先在People.h中分別聲明兩個方法: -(void ...
Objective-C 有兩個神奇的方法:+load 和 +initialize,這兩個方法在類被使用時會自動調用。但是兩個方法的不同點會導致應用層面上性能的顯著差異。 一、+ initialize 方法和+load 調用時機 先來看一個表 ...
Objective-C里面既有實例方法也類方法。類方法(Class Method) 有時被稱為工廠方法(Factory Method)或者方便方法(Convenience method)。工廠方法的稱謂明顯和一般意義上的工廠方法不同,從本質上來說,類方法可以獨立於對象而執行,所以在其他的語言里面 ...