1
在我的一個Objective-C類中,我有一個UIViewController<UIProfileListHeaderDelegate>
類型的屬性,我將如何在Swift中表示該屬性?我需要訪問UIViewController
和UIProfileListHeaderDelegate
的屬性和方法。Swift - 屬性類型和協議
謝謝!
在我的一個Objective-C類中,我有一個UIViewController<UIProfileListHeaderDelegate>
類型的屬性,我將如何在Swift中表示該屬性?我需要訪問UIViewController
和UIProfileListHeaderDelegate
的屬性和方法。Swift - 屬性類型和協議
謝謝!
處理此問題的快速方法是定義一個協議,其中包含從UIViewController
開始的相關方法,並讓您的UIProfileListHeaderDelegate
繼承該協議。
定義與自己關心的方法的協議:
protocol ViewControllerSubset {
var view:UIView!
}
聲明一個UIViewController中實現了協議,並不需要實際執行任何東西,因爲它已經存在
extension UIViewController : ViewControllerSubset {}
繼承你的協議從那
protocol UIProfileListHeaderDelegate : ViewControllerSubset
而你走了。
如果你不想改變你的協議的層次結構(或不能因爲它是一個系統協議),您可以定義包含兩個協議的協議)
protocol EquatableAndComparable : Equatable, Comparable { }
其實我試過,但我可能沒有做正確的搜索。我想過使用泛型,但似乎並非如此。我也嘗試創建一個typealias,但我找不到它的正確語法。 – 2014-09-02 12:53:52
看起來像http://stackoverflow.com/questions/25172430/how-to-declare-a-property-of-a-particular-class-which-is-also-protocol-conforman的重複,雖然沒有好的答案那裏。其實問題似乎不容易通過谷歌搜索 – 2014-09-02 13:05:07
@codingVoldemort你有什麼想法嗎? – 2014-09-02 13:36:34