Objective-C:運行時runtime

來源:互聯網
上載者:User

標籤:

1.是否可以把比較耗時的操作放在通知中樞中? 

通知在哪一個線程發的,那麼對通知事件的處理就在同一個線程中進行;

如果在非同步線程發的通知,那麼可以執行比較耗時的操作;如果在主線程發的通知,那麼就不可以執行比較耗時的操作。 2.Foundation對象和CoreFoundation對象有什麼區別?Foundation對象時OC的;CoreFoundation對象是C的;Foundation對象和CoreFoundation對象是可以互相轉換的,資料類型之間的轉換·ARC : __bridge_retained、__bridge_transfer、CFBridgingRetain、CFBridgingRelease·非ARC : __bridge  3.什麼是runtime?

1> runtime是一套底層的C語言API(包含很多強大實用的C語言資料類型、C語言函數)

2> 實際上,平時我們編寫的OC代碼,底層都是基於runtime實現的

* 也就是說,平時我們編寫的OC代碼,最終都是轉成了底層的runtime代碼(C語言代碼)

 

runtime有啥用?

1> 能動態產生一個類、一個成員變數、一個方法

2> 能動態修改一個類、一個成員變數、一個方法

3> 能動態刪除一個類、一個成員變數、一個方法

 

常見的函數、標頭檔

#import <objc/runtime.h> : 成員變數、類、方法

Ivar * class_copyIvarList : 獲得某個類內部的所有成員變數

Method * class_copyMethodList : 獲得某個類內部的所有方法

Method class_getInstanceMethod : 獲得某個執行個體方法(對象方法,減號-開頭)

Method class_getClassMethod : 獲得某個類方法(加號+開頭)

method_exchangeImplementations : 交換2個方法的具體實現

 

#import <objc/message.h> : 訊息機制

objc_msgSend(….)

 

什麼是iOS Swizzle? 利用運行時函數交換2個方法的實現

 

 

Objective-C:運行時runtime

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.