2017-03-07 40 views
1

在我剛剛閱讀的博客文章中:什麼是客觀的c運行時功能?

'Swift允許我們從NSObject擴展類來獲取對象的Objective-C運行時功能。它還允許我們使用@objc註釋Swift方法以允許Objective-C運行時使用這些方法。'

我不理解術語objective-C運行時功能。這是否意味着該代碼也可以用於Objective-C項目?

+0

https://developer.apple.com/reference/objectivec/objective_c_runtime,http://nshipster.com/swift-objc-runtime/。 –

回答

2

引述apple docs

的Objective-C運行是一個運行時庫,提供了Objective-C語言的動態特性的支持,並且因此由所有Objective-C的應用程序鏈接到。 Objective-C運行時庫支持函數在/usr/lib/libobjc.A.dylib中的共享庫中實現。

該API主要用於在Objective-C和其他語言之間開發橋接層,或者用於低級調試。你很可能不需要使用它。

即使沒有一行Objective-C代碼編寫,每個Swift應用程序都在Objective-C運行時內執行,所以這就是爲什麼你可以訪問它。

你可以做這樣的事情swizzling