想突破自身的技術(shù)瓶頸,提高自身iOS開發(fā)水平,深挖?Runtime源碼?一定是個(gè)不錯(cuò)的方法。本篇博客我們結(jié)合?Runtime源碼講一下?Objective-C Associated Objects?的實(shí)現(xiàn)原理。 由于在iOS開發(fā)中經(jīng)常需要使用分類,如果我們需要為已經(jīng)存在的類添加屬性,使用 @property 并不能在分類中正確創(chuàng)建實(shí)例變量和存取方法,不過 通過 Objective-C 運(yùn)行時(shí)中的關(guān)聯(lián)對(duì)象,也就是?Associated Objects?,可以實(shí)現(xiàn)上述需求。

在這里我還是要推薦下我自己建的iOS開發(fā)學(xué)習(xí)群:680565220,群里都是學(xué)ios開發(fā)的,如果你正在學(xué)習(xí)ios ,小編歡迎你加入,今天分享的這個(gè)案例已經(jīng)上傳到群文件,大家都是軟件開發(fā)黨,不定期分享干貨(只有iOS軟件開發(fā)相關(guān)的),包括我自己整理的一份2018最新的iOS進(jìn)階資料和高級(jí)開發(fā)教程


讀取上面的警告,我們得知, Category Property 屬性的存取方法需要自己手動(dòng)去實(shí)現(xiàn),或者使用 @dynamic 在運(yùn)行時(shí)實(shí)現(xiàn)這些方法。
換句話說,分類中 LLVM 和 @property 鬧掰了, 并沒有為我們生成實(shí)例變量以及存取方法,而需要我們手動(dòng)實(shí)現(xiàn)。
單純的技術(shù)轅們總是聽不進(jìn)去別人的話,總喜歡用代碼來驗(yàn)證一些問題













