原文:Objective C類方法load和initialize的區別

過去兩個星期里,為了完成一個工作,接觸到了NSObject中非常特別的兩個類方法 Class Method 。它們的特別之處,在於iOS會在運行期提前並且自動調用這兩個方法,而且很多對於類方法的規則 比如繼承,類別 Category 都有不同的處理。 而因為這兩個方法是在程序運行一開始就被調用的方法,我們可以利用他們在類被使用前,做一些預處理工作。比如我碰到的就是讓類自動將自身類名保存到一個NSD ...

2012-09-29 12:35 12 41746 推薦指數:

查看詳情

類方法loadinitialize區別

1、+load方法當類或分類添加到object-c runtime時被調用,子類的+load方法會在它所有父類的+load方法之后執行,而分類的+load方法會在它的主類的+load方法之后執行。但不同的類之間的+load方法的調用順序是不確定的,所以不要在此方法中用另一個類。 2、+load ...

Sat Dec 31 01:15:00 CST 2016 0 6192
Objective C 類方法

一,Objective C類方法(class method),即 static 方法,是用 + 修飾的方法類方法是屬於類對象的,所以無需創建類的實例對象我們就可以直接使用它們。使用形式為: [ClassName classMethod]; 在這里 ClassName 代表的就是一個類 ...

Mon Feb 27 21:36:00 CST 2012 0 6179
iOS loadinitialize區別

可能有些還不清楚loadinitialize區別,下面簡單說一下: 首先說一下 + initialize 方法:蘋果官方對這個方法有這樣的一段描述:這個方法會在 第一次初始化這個類之前 被調用,我們用它來初始化靜態變量. initialize方法的調用時機,當向該類發送第一個消息(一般是類 ...

Fri Jul 07 19:51:00 CST 2017 0 4504
initialize和init以及load方法區別與使用以及什么時候調用

initialize不是init initialize在這個類第一次被調用的時候比如[[class alloc]init]會調用一次initialize方法,不管創建多少次這個類,都只會調用一次這個方法,我們用它來初始化靜態變量,而init方法是只要這個類被調用,就會調用這個init方法,這個類 ...

Wed Aug 17 19:28:00 CST 2016 0 3416
iOS load方法initialize方法

在 iOS 開發中,我們經常會使用 +load 方法來做一些在 main 函數之前的操作,比如方法交換(Method Swizzle)等。現在分析一下load方法initialize方法的調用順序以及區別。 1.先看下load方法 嘗試定義一個繼承自 NSObject 的 Person 類 ...

Fri Aug 30 18:55:00 CST 2019 0 399
Objective-C學習筆記(十九)——對象方法類方法的相互調用

事實上在OC的對象方法(減號方法)和類方法(加號方法)並非相互獨立的,它們也能夠發生千絲萬縷的關系,今天我們來研究下它們兩者相互調用的問題。該樣例還是以People類為基礎。 (一)對象方法調用類方法: (1)先在People.h中分別聲明兩個方法: -(void ...

Mon May 08 01:49:00 CST 2017 0 1677
iOS-+load和+initialize方法調用時機

Objective-C 有兩個神奇的方法:+load 和 +initialize,這兩個方法在類被使用時會自動調用。但是兩個方法的不同點會導致應用層面上性能的顯著差異。 一、+ initialize 方法和+load 調用時機 先來看一個表 ...

Thu Jan 21 04:00:00 CST 2021 0 597
實例方法類方法區別

Objective-C里面既有實例方法類方法類方法(Class Method) 有時被稱為工廠方法(Factory Method)或者方便方法(Convenience method)。工廠方法的稱謂明顯和一般意義上的工廠方法不同,從本質上來說,類方法可以獨立於對象而執行,所以在其他的語言里面 ...

Wed Jun 01 03:57:00 CST 2016 0 1984
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM