iOS開(kāi)發(fā) runtime使用場(chǎng)景

1. 消息

#import <objc/message.h>
#import <objc/runtime.h>
objc_msgSend((id)[Person class], @selector(walk));

2. 獲取所有方法,變量

objc_property_t * propertys = class_copyPropertyList(clazz, &outCount);

3. 交換方法(AOP)

[外部鏈接](http://note.youdao.com/noteshare?id=2ca674adf2eeece8fdd548e3458ef983)

4. 分類添加成員

const char key;
//使用runtime的方法,將分類中的,屬性set與get方法進(jìn)行重寫,解決分類中不能夠聲明成員變量的這個(gè)問(wèn)題
- (void)setExpand:(BOOL)expand
{
    //<#id object#> 傳進(jìn)來(lái)的參數(shù)與誰(shuí)關(guān)聯(lián)
    //const void *key 唯一標(biāo)示
    //id value 關(guān)聯(lián)的內(nèi)容是什么
    //objc_AssociationPolicy policy 以哪種約束方式進(jìn)行關(guān)聯(lián)
    objc_setAssociatedObject(self, &key, @(expand), OBJC_ASSOCIATION_ASSIGN);
}
- (BOOL)expand
{
    //把包裝類轉(zhuǎn)換成基本數(shù)據(jù)類型后,在返回
    return [objc_getAssociatedObject(self, &key) boolValue];
}
- (void)spliteView
{
    if((self.expand = !self.expand))
    {
        self.view.transform = CGAffineTransformMakeTranslation(300, 0);
    }
    else
    {
        self.view.transform = CGAffineTransformIdentity;
    }
}

5. kvc的實(shí)現(xiàn)

6. 歸檔的實(shí)現(xiàn)

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 目錄 Objective-C Runtime到底是什么 Objective-C的元素認(rèn)知 Runtime詳解 應(yīng)用...
    Ryan___閱讀 2,013評(píng)論 1 3
  • 對(duì)于從事 iOS 開(kāi)發(fā)人員來(lái)說(shuō),所有的人都會(huì)答出【runtime 是運(yùn)行時(shí)】什么情況下用runtime?大部分人能...
    夢(mèng)夜繁星閱讀 3,812評(píng)論 7 64
  • 前言 到了今天終于要"出院"了,要總結(jié)一下住院幾天的收獲,談?wù)凴untime到底能為我們開(kāi)發(fā)帶來(lái)些什么好處。當(dāng)然它...
    一縷殤流化隱半邊冰霜閱讀 23,598評(píng)論 56 317
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,068評(píng)論 0 9
  • 這幾天早上總是會(huì)從睡夢(mèng)中惴惴不安的醒來(lái),醒來(lái)后心里很難受,究其原因主要是因?yàn)槲乙呀?jīng)整整兩個(gè)月沒(méi)有經(jīng)濟(jì)收入了。 過(guò)完...
    難知閱讀 276評(píng)論 9 6

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