我有一個協議實現如下。如何從Swift協議中返回`[Self]`?
protocol DatabaseInjectable {
static func deriveObjectFromDBRow(row: [String]) -> Self? // Method - 1
static func collectAllObjectsForDatabaseAction(action: (Database) -> Void) -> [Self]? // Method - 2
}
如果我成功與通信實施Method - 1
這樣的:
static func deriveObjectFromDBRow(row: [String]) -> Self? {
...
}
但我無法實現Method - 2
這樣的:
static func collectAllObjectsForDatabaseAction(action: (WWDatabase) -> Void) -> [Self]? {
...
}
有我得到一個錯誤像這樣:
'Self' is only available in a protocol or as the result of a method in a class;
任何幫助返回陣列形式Self
(它自己的類)會很好。
儘管我自己回答了幾個*類似的問題(其中沒有一個我認爲回答你的*特定的問題),但我仍然發現了對'自我'的直覺的處理。也許有人可以寫一個明確的指南... – Grimxn