0
在我的兩個班,我有以下的代碼如何創建可用於2個不同類的通用swift函數?
// Two classes who's code I am trying to reduce using protocols
class class1 {
var view: viewSubclass1!
func printName() {
print("This is the view: \(view)")
}
}
class class2 {
var view: viewSubclass2!
func printName() {
print("This is the view: \(view)")
}
}
// The protocol and protocol extension I am trying to create
protocol myProtocol {
var view: UIView {get set}
func printName()
}
extension myProtocol {
func printName() {
print("This is the view: \(view)")
}
}
// The subviews of UIView
class viewSubclass1: UIView {}
class viewSubclass2: UIView {}
正如你所看到的,class1
和class2
屬於不同類別,但具有相同的變量名:view
和相同的函數名。區別在於view
變量的類型不同。
問題:使用協議和協議擴展,如何減少兩個類之間的代碼?我不想重複代碼,因爲它們非常相似。我一直在嘗試不同的代碼版本,但我一直陷入困境。我不太明白。 我怎樣才能讓這兩個類使用相同的代碼使用協議和協議擴展?
我編輯了我的問題。第一個是一團糟。我試圖讓它變得更簡單。 –
@JTAppleCalendarforiOSSwift,好的,稍後我會更新我的答案。 – OOPer