Artwork

内容由一三、波肥提供。所有播客内容(包括剧集、图形和播客描述)均由 一三、波肥 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal
Player FM -播客应用
使用Player FM应用程序离线!

70: Swift Runtime 之 Method Dispatch—Static, Table, or Message

52:27
 
分享
 

Manage episode 286748737 series 2603883
内容由一三、波肥提供。所有播客内容(包括剧集、图形和播客描述)均由 一三、波肥 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal

波肥來介紹 Swift 的 method dispatch。

{ 完整節目筆記 https://weakself.dev/episodes/70 }

👋開場

⏪上集節目回顧

聽眾 dan12411 貢獻他的 Xcode 技巧。

📰一週開發者新聞

⭐️Swift Runtime 1—Method Dispatch in Swift/ObjC: Static, Table, Message Dispatch

  • struct 的 func 一定是 static dispatch。因為 optimization 設定的不同,有可能會是 inline
  • class 的 func 通常是 table dispatch。如果加了 final 或是在 extension 定義新 func 就會是 static。
  • Swift 裡的NSObject subclass,一般 func 也是 table dispatch,即使加了 @objc 也一樣。若是 @objc dynamic就會是 message dispatch。如果加了 final 就會是 static
  • 想要自行研究的話,可以用以下方法(程式碼請見完整節目筆記
  • 用 swiftc -emit-silgen Foo.swift -Onone 即可得到 SIL

💸勸敗話題

👋收尾

更多 weak self

  continue reading

110集单集

Artwork
icon分享
 
Manage episode 286748737 series 2603883
内容由一三、波肥提供。所有播客内容(包括剧集、图形和播客描述)均由 一三、波肥 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal

波肥來介紹 Swift 的 method dispatch。

{ 完整節目筆記 https://weakself.dev/episodes/70 }

👋開場

⏪上集節目回顧

聽眾 dan12411 貢獻他的 Xcode 技巧。

📰一週開發者新聞

⭐️Swift Runtime 1—Method Dispatch in Swift/ObjC: Static, Table, Message Dispatch

  • struct 的 func 一定是 static dispatch。因為 optimization 設定的不同,有可能會是 inline
  • class 的 func 通常是 table dispatch。如果加了 final 或是在 extension 定義新 func 就會是 static。
  • Swift 裡的NSObject subclass,一般 func 也是 table dispatch,即使加了 @objc 也一樣。若是 @objc dynamic就會是 message dispatch。如果加了 final 就會是 static
  • 想要自行研究的話,可以用以下方法(程式碼請見完整節目筆記
  • 用 swiftc -emit-silgen Foo.swift -Onone 即可得到 SIL

💸勸敗話題

👋收尾

更多 weak self

  continue reading

110集单集

所有剧集

×
 
Loading …

欢迎使用Player FM

Player FM正在网上搜索高质量的播客,以便您现在享受。它是最好的播客应用程序,适用于安卓、iPhone和网络。注册以跨设备同步订阅。

 

快速参考指南