多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 如何為類別增加變量?

如何為類別增加變量?

來源:程序員人生   發(fā)布時間:2015-04-24 08:10:17 閱讀次數(shù):3263次

Category 是Objective-C 里面最經(jīng)常使用到的功能之1。Category 可以為已存在的類增加方法,而不需要增加1個子類。而且,我們可以在不知道某個類內(nèi)部實(shí)現(xiàn)的情況下,為該類增加方法。

注意:種別其實(shí)不能為類聲明新的實(shí)例變量,他只包括方法。

此篇文章要通過種別為類增加變量,不多說了,直接上代碼吧:

通過runtime實(shí)現(xiàn)以下代碼:

static constchar *durationKey = "duration";

- (int)getDurationTime{

    return [objc_getAssociatedObject(self, &durationKey) intValue];

}

- (void)setDurationTime:(int)duration{

    objc_setAssociatedObject(self, &durationKey, [NSNumber numberWithInt:duration], OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}


調(diào)用方式: [selfgetDurationTime];


Category的真面目

objc所有類和對象都是c結(jié)構(gòu)體,category固然也1樣,下面是runtime中category的結(jié)構(gòu):

1 2 3 4 5 6 7 8
struct _category_t { const char *name; // 1 struct _class_t *cls; // 2 const struct _method_list_t *instance_methods; // 3 const struct _method_list_t *class_methods; // 4 const struct _protocol_list_t *protocols; // 5 const struct _prop_list_t *properties; // 6 };

  1. name注意,其實(shí)不是category小括號里寫的名字,而是類的名字
  2. cls要擴(kuò)大的類對象,編譯期間這個值是不會有的,在app被runtime加載時才會根據(jù)name對應(yīng)到類對象
  3. instance_methods這個category所有的-方法
  4. class_methods這個category所有的+方法
  5. protocols這個category實(shí)現(xiàn)的protocol,比較不經(jīng)常使用在category里面實(shí)現(xiàn)協(xié)議,但是確切支持的
  6. properties這個category所有的property,這也是category里面可以定義屬性的緣由,不過這個property不會@synthesize實(shí)例變量,1般有需求添加實(shí)例變量屬性時會采取objc_setAssociatedObjectobjc_getAssociatedObject方法綁定方法綁定,不過這類方法生成的與1個普通的實(shí)例變量完全是兩回事。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美日本一区 | 一区二区三区高清不卡 | 视频一区色眯眯视频在线 | 欧美性受xxxx喷水性欧洲 | 亚洲福利在线看 | 最近中文字幕视频国语中文字幕 | 精品国产一区二区 | 中文字幕第二一区 | 欧美xxxx性free | 久久久精品国产免费观看同学 | 成人精品视频一区二区三区 | 国产乱码一区二区三区四区 | 最近韩国中文字幕更新 | 久久亚洲精品人成综合网 | 最新国产在线播放 | 自拍偷拍图 | 欧美性88xx | 亚洲一区网站 | 亚洲精品一区二区观看 | 国产成人精品视频在放 | 国产福利在线免费观看 | 国产一区不卡 | 亚洲 欧美 小说 | 成人久久精品一区二区三区 | 毛片h| japanese中文字幕 | 亚洲男人的天堂久久精品 | 日本一视频一区视频二区 | riav久久中文一区二区 | 欧美色就色 | 一区二区三区四区国产 | 中文字幕在线观看一区二区三区 | 性欧美videos高清精品 | 吃奶japanesevideo 吃奶跟添下面特舒服 | 99精品一区二区免费视频 | 日本最新在线 | 欧美日韩亚洲综合另类ac | 偷自拍第一页 | 国产免费不卡 | 2020国产精品 | 网站久久|