category重寫系統(tǒng)方法的調(diào)用順序是怎么樣的?

科技 未結(jié) 2 1761

我知道category方法是可以覆蓋系統(tǒng)的方法,但是當(dāng)有幾個(gè)category重寫同一個(gè)方法的時(shí)候調(diào)用順序是怎么樣子的???我開始寫代碼測(cè)試了一下,看不出來(lái)是按什么順序來(lái)的,總是后面創(chuàng)建的category的方法被調(diào)用,其他的都被覆蓋了。。。很想知道這是為什么,怎么證實(shí)這一點(diǎn),依據(jù)是什么。。。有知道的朋友指點(diǎn)一下下咯?

相關(guān)標(biāo)簽:
2條回答
  • 2023-04-09 04:40

    根據(jù)runtime的消息傳遞機(jī)制中的核心函數(shù)void objc_msgSend(id self,SEL cmd,...)來(lái)發(fā)送消息,先從當(dāng)前類中查找調(diào)用的方法,若沒(méi)有找到則繼續(xù)從其父類中一層層往上找,那么對(duì)于category重寫同一個(gè)方法,則在消息傳遞的過(guò)程中,會(huì)最先找到category中的方法并執(zhí)行該方法。對(duì)于多個(gè)分類調(diào)用同一個(gè)方法,Xcode在運(yùn)行時(shí)是根據(jù)buildPhases->Compile Sources里面的從上至下順序編譯的,編譯時(shí)通過(guò)壓棧的方式將多個(gè)分類壓棧,根據(jù)后進(jìn)先出的原則,后編譯的會(huì)被先調(diào)用,當(dāng)objc_msgSend找到方法并調(diào)用之后,就不再繼續(xù)傳遞消息,所以形成所謂上的覆蓋。并不是后面創(chuàng)建的就一定被調(diào)用,得看創(chuàng)建之后其在buildPhases->Compile Sources里面的位置。

    0 討論(0)
  • 按runtime加載分類方法的順序來(lái)覆蓋一般實(shí)現(xiàn)的就是最后一個(gè)加載分類的方法

    0 討論(0)
提交回復(fù)
最新問(wèn)題
100英寸幕布多長(zhǎng)多寬? 4
輸卵管的檢查疼嗎 1
酷喵客服電話24小時(shí)人工服務(wù)熱線 1
極米play充不進(jìn)電 1
不育好不好治 1
男藍(lán)亞洲杯預(yù)選賽賽程2022 1
得了不孕怎么辦 1
任天堂港區(qū)買的序列碼在哪看 1
分辨率和像素什么關(guān)系? 1
hk1 box無(wú)故重啟 1
猜你喜歡
朔州有幾家三代試管醫(yī)院?附醫(yī)院名單
南昌第三代試管嬰兒大概要花費(fèi)多少錢?附試管嬰兒費(fèi)用價(jià)格詳細(xì)!
國(guó)內(nèi)比較出名的不孕不育醫(yī)院做試管哪家好,附費(fèi)用及成功率!
2025第三代試管可以不養(yǎng)囊胚嗎,省錢攻略解析!
桂林地區(qū)試管嬰兒服務(wù)費(fèi)用概覽!掌握費(fèi)用策略!
試管嬰兒之前的檢查多久有效,試管前檢查要多久才能解決
南京試管助孕機(jī)構(gòu)!趕緊了解一下!
廣州三代試管哪家醫(yī)院技術(shù)較好?附多少錢一次!
三代試管嬰兒胚胎二成功率是多少!單周期3萬(wàn)起!
佛山比較出名試管醫(yī)院排名前十,內(nèi)附醫(yī)院全方位對(duì)比
熱門文章
今日熱議|試管嬰兒成功率有多少?
2025湖北武漢試管助孕生子比較好的醫(yī)院名單(附助孕費(fèi)用)
昆明做三代試管嬰兒的大約多少錢?有哪些選擇誤區(qū)?
2025上海TOP5三代試管醫(yī)院公布,這幾家機(jī)構(gòu)入選
泰國(guó)三代試管私立中介公司比較有名的是哪些?
泰國(guó)三代試管嬰兒醫(yī)院權(quán)威榜單
上海有沒(méi)有做三代試管靠譜的私立醫(yī)院?2025權(quán)威醫(yī)院排行榜一覽
泰國(guó)試管嬰兒醫(yī)院排名是哪幾家?看看有沒(méi)有你附近的醫(yī)院上榜
泰國(guó)HIV試管嬰兒費(fèi)用明細(xì)與攻略
蘭州能做三代試管的私立機(jī)構(gòu)哪家好?盤點(diǎn)各機(jī)構(gòu)技術(shù)優(yōu)勢(shì)
2024助孕指南|2025清遠(yuǎn)市做三代試管嬰兒最厲害的醫(yī)院有哪家
熱度分析!2025海南做試管排名前10位的醫(yī)院大全
不結(jié)婚怎么做試管?流程步驟竟如此簡(jiǎn)單
介紹:吉林試管嬰兒:吉林試管嬰兒費(fèi)用參考
2025湖北做試管嬰兒最厲害的醫(yī)院可以簽約嗎,這幾家機(jī)構(gòu)符合條件都能篩選
去美國(guó)做試管費(fèi)用真相大揭秘,并非那么簡(jiǎn)單
岳陽(yáng)三代試管嬰兒哪三家比較好的私立醫(yī)院?
北京301醫(yī)院試管嬰兒成功率,一二三代數(shù)據(jù)都在這
泰國(guó)試管嬰兒有哪些優(yōu)勢(shì),為什么大家都選擇去
泰國(guó)三代試管嬰兒哪家醫(yī)院好
玉林哪家醫(yī)院試管**-弓形子宮做試管成功率高嗎用什么方案較好
美國(guó)試管嬰兒的過(guò)程是什么呢?周期是多久呢?
盆腔炎可以在百色做試管嗎附風(fēng)險(xiǎn)及日常注意事項(xiàng)
精子不液化可以在玉林做試管嗎附調(diào)理方法及流程步驟
泰國(guó)做試管嬰兒花費(fèi)是多少錢?主要花費(fèi)在哪里?
廣告合作方 廣告申請(qǐng)