你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS runtime運行時詳解

iOS runtime運行時詳解

編輯:IOS開發綜合

什麼是runtime?

runtime直譯就是運行時間,run(跑,運行) time(時間),網上大家都叫它運行時,它是一套比較底層的純C語言API,屬於一個C語言庫,包含了很多底層的C語言API,它是OC的幕後工作者,我們平時寫的OC代碼,在運行過程時,都會轉為runtime的C語言代碼

runtime有什麼用?

如果你之前不知道runtime,可能覺得它沒什麼用,其實他的作用非常強大.下面我們就以代碼的形式為大家揭開runtime的神秘面紗

作用1 獲取一個類全部成員變量名(如果你的成員私有,也可以獲取到)

我們新建一個Person類,.h代碼如下

24E6D740-14ED-4483-912D-AA675C87C23B.png

這些成員變量都是公有的,我們直接點開頭文件就可以看到,如果是系統的類呢,你是不是就不知道類裡面有哪些成員了,利用runtime可以輕松解決這個問題,現在我們來測試一下,記得要加#import

E29E193D-97EA-4D7D-8BA8-88BBB9F17F5F.png

打印結果

694E976C-DD22-4770-9FA4-98B89C4C680C.png

你可以試一下,把所有的成員放到.m文件裡面,它打印的結果是一樣的.

作用2 同理,我們可以獲取到一個類的全部屬性名

0A0504F7-FACB-4C2B-8D9C-C0A59D7FBDEE.png

打印結果:

29601516-8E4F-4C98-896D-863541F9CFBC.png

作用3獲取一個類的全部方法

5635D473-40DC-45AA-9522-9732563E6556.png

打印結果:

C057CCB2-5931-4325-99A8-4FCA10339CA1.png

我們可以看到所有的方法

作用4獲取一個類遵循的所有協議

先將遵循的協議給注釋掉

721FB3C1-C646-4D96-9EAC-F5B7205F25F3.png

測試代碼

0B6EA858-DF32-4ADF-9607-DC9A3A305482.png

結果啥都沒有打印出來

E0457045-9F61-40C2-9600-E5614BD0FA61.png

我們把遵循的代碼注釋給打開

再執行測試代碼,打印結果

E98B1187-E559-42B9-9E56-9A06B5B05020.png

是不是很棒,你可能覺得貌似用處不太大,那接下來我們來看看如何利用runtime歸檔和解檔.

作用5 歸檔/解檔D4DE7A8E-3ED3-4972-A165-7FDA0D8C2D9F.png測試如下:03EDB689-05E0-41F6-B9DF-46722D4DB274.png

 
    1. 上一頁:
    2. 下一頁:
    蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
    Copyright © Ios教程網 All Rights Reserved