ios拓展22-runtime為category添加屬性

先提下category使用
1. 一個(gè)分類中可以新增多個(gè)方法
2. 分類中不可以新增實(shí)例變量 
3. 分類中可以訪問原來類中的實(shí)例變量
4. @property (nonatomic, copy) NSString *name;  相當(dāng)于聲明了setter getter 方法,需要我們自己實(shí)現(xiàn)

給NSObject添加一個(gè)name屬性(嚴(yán)格來說是,實(shí)現(xiàn)setter getter 方法)

1 .h文件
@interface NSObject (test)
@property (nonatomic, copy) NSString *name;
@end
2 .m文件實(shí)現(xiàn)
#import "NSObject+test.h"
#import <objc/runtime.h>

@implementation NSObject (test)

// 定義關(guān)聯(lián)的key
static const char *key = "name";
//getter 方法實(shí)現(xiàn)
- (NSString *)name
{
    // 根據(jù)關(guān)聯(lián)的key,獲取關(guān)聯(lián)的值。
    return objc_getAssociatedObject(self, key);
}

//實(shí)現(xiàn)setter方法
- (void)setName:(NSString *)name
{
    // 第一個(gè)參數(shù):給哪個(gè)對(duì)象添加關(guān)聯(lián)
    // 第二個(gè)參數(shù):關(guān)聯(lián)的key,通過這個(gè)key獲取
    // 第三個(gè)參數(shù):關(guān)聯(lián)的value
    // 第四個(gè)參數(shù):關(guān)聯(lián)的策略
    objc_setAssociatedObject(self, key, name, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

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

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

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,068評(píng)論 0 9
  • 在既有類中使用關(guān)聯(lián)對(duì)象存放自定義數(shù)據(jù);有時(shí)候需要在對(duì)象中存放相關(guān)信息。這時(shí)我們通常會(huì)從對(duì)象的所屬的類中繼承一...
    ReidWang閱讀 185評(píng)論 0 0
  • 文||與你相識(shí) 陽光斜過后 你又走進(jìn)了生活 那睡醒的牛羊 開始向你張望 那些搖曳的花朵 還有一樹樹果香 在你的目光...
    與你相識(shí)_40fa閱讀 151評(píng)論 1 2
  • 前序-寫給彭彭: 上期彭彭已經(jīng)幫忙修改了整體的文章,感激涕零!作為當(dāng)事人應(yīng)當(dāng)加倍珍惜,更要努力地輸出,讓朋友看到自...
    X逆生長(zhǎng)閱讀 570評(píng)論 1 3

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