iOS 類方法與實例方法 (+方法、-方法)

先來一發(fā)代碼,捋一捋(+方法就是類方法,-方法就是實例方法):

+ (void)thisIsAClassMethod; // 類方法,不需要實例化對象就可以調(diào)用
- (void)thisIsAnInstanceMethod; // 實例方法,必須通過實例化的對象調(diào)用
// 對象的初始化 OC中以消息機制傳遞信息,發(fā)送 alloc 消息給類分配內(nèi)存空間,發(fā)送 init 消息生成對象,指針指向?qū)ο蟊旧怼?ClassName *obj = [[ClassName alloc] init];

類方法:
1、類方法可以調(diào)用類方法;
2、類方法不可以調(diào)用實例方法,但是類方法可以通過創(chuàng)建對象來訪問實例方法;
3、類方法不可以使用實例變量。(可以使用self ,因為 self 不是實例變量。)
4、類方法作為消息,可以發(fā)送到類或者對象里面去(就是可以通過類或者對象調(diào)用類方法)

實例方法里面的 self ,是對象的首地址。
類方法里面的 self ,是 class 。

使用過程中既可以使用新定義的方法名,也可以使用以前的方法(點表示法)
屬性特征:readwrite readonly assign retain copy nonatomic

assign:默認行為,使用 @property int num 就是使用了 assign 行為,就是給實例變量賦了一個值
retain:實現(xiàn)了兩個功能,一個是保留了賦值時傳遞的對象,一個是賦值前釋放了以前的值,使用時加上 @property (retain) int num;
copy:發(fā)送一條復(fù)制的消息給被傳遞的對象,保留它,并釋放任何以前的值;
nonatomic:非原子訪問器,加上后可以保證屬性在被一個線程使用時不被另一個線程訪問,不存在 atomic 關(guān)鍵字,默認情況下,所有方法都是自動合成的。(類似Java中的線程鎖機制 synchronised)
readwrite:可讀寫
readonly:只讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,592評論 30 472
  • 37.cocoa內(nèi)存管理規(guī)則 1)當(dāng)你使用new,alloc或copy方法創(chuàng)建一個對象時,該對象的保留計數(shù)器值為1...
    如風(fēng)家的秘密閱讀 954評論 0 4
  • 心煩的時候,最好選擇沉默 心煩,是自己的,不是別人的;是偶然的,也是必然的;它,只是人的一種心情,不是人的...
    sj禁閱讀 346評論 0 1
  • 這兩天西安的氣溫又回復(fù)到了柏油路上煎雞蛋的水平,剛在科目二半坡起步被刷下的我坐在地鐵站里不知道干什么好。人在無聊時...
    考試不如烤雞翅閱讀 276評論 0 0

友情鏈接更多精彩內(nèi)容