Использование Swift 2.0 У меня есть проблема, соответствующая протоколу. Я сломал код как можно больше, чтобы проиллюстрировать проблему.Соответствует протоколу?
protocol Filter {
var filterName:BaseModel {get}
}
protocol BaseModel {
var name: String {get}
}
enum SomeModel: BaseModel {
case Something
var name: String {
switch self {
case .Something:
return "yeah"
}
}
}
struct SomeFilter:Filter {
var filterName:SomeModel
}
С помощью этого кода я получаю:
Тип 'SomeFilter' не соответствует протоколу 'Фильтр'
С SomeModel имеет тип BaseModel (соответствует BaseModel) это должно Работа. Если я изменю изменение var filterName:SomeModel
на var filterName:BaseModel
в SomeFilter, это работает, конечно, но я не могу понять, почему он не видит SomeModel в качестве BaseModel.
Благодарим за это! До сих пор я не знал о дженериках в Свифте. У меня получилось немного другое решение, которое было на самом деле лучше, но, по крайней мере, я кое-что узнал. – r0yalty
Уверенный :) Не существует истинного единственного решения, это то, что мне нравится в программировании, решая головоломку с разными частями. – DevAndArtist
@ r0yalty Если вы нашли лучшее решение, ответим на ваш вопрос и отметьте его как ответ. Так что другие программисты тоже выигрывают. – Qbyte