image.png
image.png
image.png
知道了OC的系統(tǒng)函數(shù)和入?yún)⒑曷ΓM管不知道具體實現(xiàn),也可以拿來用
image.png
image.png
image.png
image.png
image.png
image.png
@select 是oc Runtime那一套東西线定,swift本身沒有runtime的
image.png
image.png
1.為什么Swift暴露給OC的類最終要繼承自NSObject?
- oc調(diào)用swift,swift類要繼承NSObject,因為alloc這些類方法來自于NSObject ,調(diào)用方法要有個iss指針去使用runtime那一套東西诲泌,所以必須繼承與NSObject
2.p.run()底層是怎么調(diào)用的屹堰?反過來沿腰,oc調(diào)用Swift底層又是如何調(diào)用?
swift里面調(diào)用OC的方法本質(zhì)是objc-msgsend runtime那些東西
如果swift調(diào)用swift方法非要使用objc-msgsend調(diào)用邏輯的話事哭,則要給swift方法添加dynamic修飾符
3.car.run()底層是怎么調(diào)用漫雷?
- 仍然是swift虛表那些東西,如果非要使用objc-msgsend調(diào)用邏輯的話慷蠕,則要給run()添加dynamic修飾符
String
image.png
str.index...生成一個索引
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
NSMutableString繼承與NSstring
image.png