objc_getClass()返回的是本類(TestClass)的地址铸史,object_getClass()返回才是 isa 指向的class举庶。 在OC中怒坯,對(duì)象的類是 isa 指針決定的。isa 指針指向?qū)ο笏鶎俚念惿竿瘢眍悓?duì)象也是簇爆。object_getClass(currentClass) 會(huì)順著 isa 的指向找到對(duì)應(yīng)的類。
之前還真沒關(guān)注過這些爽撒,看了作者說的問題入蛆,馬上去翻了一下runtime的源碼,的確如作者所說硕勿,
object_getClass的實(shí)現(xiàn)如下:Class object_getClass(id obj)
{
if (obj) return obj->getIsa();
else return Nil;
}
而objc_getClass函數(shù)最后調(diào)用的是getClass_impl函數(shù)哨毁,內(nèi)部調(diào)用Class result = (Class)NXMapGet(gdb_objc_realized_classes, name);從這個(gè)gdb_objc_realized_classes表里用name這個(gè)key來查這個(gè)表,表里存儲(chǔ)了運(yùn)行時(shí)所有的類源武。
Runtime 中關(guān)于MetaClass的問題前陣子我學(xué)習(xí)了Objective-C中的Runtime庫扼褪,最近我一個(gè)同學(xué)也在學(xué)習(xí)Runtime,和我看的是同一篇博客(博客地址)粱栖,他學(xué)習(xí)過程時(shí)遇到了一個(gè)問題迎捺,就過來問我。 問...
前陣子我學(xué)習(xí)了Objective-C中的Runtime庫查排,最近我一個(gè)同學(xué)也在學(xué)習(xí)Runtime,和我看的是同一篇博客(博客地址)抄沮,他學(xué)習(xí)過程時(shí)遇到了一個(gè)問題跋核,就過來問我岖瑰。 問...
在之前的一篇博客中丁屎,曾經(jīng)用clang提供的庫LibTooling編寫了一個(gè)簡單的導(dǎo)出iOS代碼中函數(shù)調(diào)用關(guān)系圖的工具荠锭,然而這種實(shí)現(xiàn)方式存在一些很明顯的缺點(diǎn): 在分析一個(gè)工程中...
前言 日常開發(fā)中,為一個(gè)已有的類(比如說不想影響其文件結(jié)構(gòu))晨川、第三方庫提供的類增加幾個(gè)property证九,已經(jīng)是十分常見且需要的操作了,有人會(huì)單獨(dú)起草一份category.m文...
這個(gè)觸發(fā)多次的原因是因?yàn)槲覍懙臏y試代碼不夠嚴(yán)謹(jǐn)共虑,后來我看到國外一個(gè)大佬已經(jīng)有更優(yōu)雅的寫法了愧怜,不會(huì)造成多次觸發(fā),你可以去看一下妈拌,github上的watchdog庫
關(guān)于線上檢測主線程卡頓的問題大家好拥坛,一年多沒有更新文章了,最大的原因我想是不知道該分享些什么供炎,這次是在一個(gè)巧合下發(fā)現(xiàn)網(wǎng)上經(jīng)常被人討論的APP在線上狀態(tài)如何檢測到主線程的卡頓情況渴逻,我也稍微了解了一下,前段...
你好,偶爾看到浑度,不過還是得提出意見诡延,文中對(duì)互斥鎖的理解可能有點(diǎn)錯(cuò)誤,互斥是保證進(jìn)程或者線程對(duì)臨界區(qū)搶奪的解決辦法梨撞,而從互斥中會(huì)分為各種鎖方案,大體來說兩種:會(huì)忙等待的互斥與不會(huì)忙等待的互斥香罐,忙等待的比如自旋卧波、perterson鎖模型等,不會(huì)忙等待就有信號(hào)量等庇茫,非忙等待會(huì)掛起線程港粱,但是這兩者都叫互斥,并不是說只有掛起才叫互斥。
iOS中的各種鎖在日常開發(fā)過程中查坪,為了提升程序運(yùn)行效率寸宏,以及用戶體驗(yàn),我們經(jīng)常使用多線程偿曙。在使用多線程的過程中氮凝,難免會(huì)遇到資源競爭問題。我們采用鎖的機(jī)制來確保線程安全望忆。 線程安全 當(dāng)一個(gè)線程...
@zenon 這個(gè)我的確還沒有關(guān)注過
關(guān)于線上檢測主線程卡頓的問題大家好,一年多沒有更新文章了截碴,最大的原因我想是不知道該分享些什么梳侨,這次是在一個(gè)巧合下發(fā)現(xiàn)網(wǎng)上經(jīng)常被人討論的APP在線上狀態(tài)如何檢測到主線程的卡頓情況,我也稍微了解了一下日丹,前段...
@zenon UI主線程調(diào)用走哺?是說卡頓么?如果是關(guān)于卡頓哲虾,大部分情況利用我本文前面所說的方案就可以檢測到了丙躏,貌似騰訊的Bugly也是類似那樣的機(jī)制
關(guān)于線上檢測主線程卡頓的問題大家好,一年多沒有更新文章了束凑,最大的原因我想是不知道該分享些什么晒旅,這次是在一個(gè)巧合下發(fā)現(xiàn)網(wǎng)上經(jīng)常被人討論的APP在線上狀態(tài)如何檢測到主線程的卡頓情況,我也稍微了解了一下汪诉,前段...