2016-06-14 29 views
2

在Objective-C中,您可以隨時通過其公共標題檢查課程的協議。但是如果你有一個快速的課程,你怎麼知道它符合什麼協議?這甚至有可能嗎?如何確定類在swift中符合的協議?

(是的,我意識到Apple的文檔列出了它符合的協議,但這看起來並不是一個真正的解決方案,因爲您可能正在使用私有框架或有其他理論上的理由想要知道對象的。協議)

而且,是的,我知道你可以檢查使用這裏列出的技術的特定協議:https://stackoverflow.com/a/37351027/18961

+1

您可以使用'is'或'as'來驗證一致性(轉至:檢查協議一致性):https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols .html –

回答

1

我不相信你可以不用扶着Objective-C運行。導入ObjectiveC並使用class_copyProtocolList()函數。

+0

這也是我的理解,但我希望有另一種方式。 – livingtech

+1

這隻適用於符合@objc協議的NSObject的子類。 –

2

在Xcode中,您可以通過命令單擊任意Swift類型來獲取其公共接口的頭像視圖,包括原始定義和擴展中添加的協議一致性。

這不顯示由定義庫外的庫添加的協議一致性,例如,如果您通過命令點擊String,則不會看到您自己的extension String: MyFunkyProtocol。但是我認爲它基本上就是你要找的頭文件類的東西。

對於Swift標準庫,http://swiftdoc.org/是一個很好的參考。

+0

什麼是特定的菜單選項來看這個公共接口?有可能我只是沒有看到它。 – livingtech

+0

右鍵單擊編輯器中的文本「跳轉到定義」。 –

相關問題