Я работаю в Swift 4.
Я хочу определить проблему.
Проблема состоит из Вопроса и Ответа.
Вопрос может быть любым из: String, Int, [Int], Image, [Image] или какого-то нового типа, не определенного, или может представлять собой некоторую комбинацию из вышеперечисленного.
Ответ также может быть любым из вышеперечисленных, но у данного Вопроса может быть Ответ другого типа.
(например, вопрос = (Изображение: «Что это за животное?), Ответ = (« Кошка »))
Так что я подумал, что протоколы - это путь:
protocol Posable {
var pose: String { get }
}
protocol Answerable: Hashable {
var answer: String { get }
}
protocol Puzzle {
var problem: Posable { get }
var solution: Answerable { get }
}
Я сделал Answerable Hashable, потому что хочу иметь возможность сравнивать ответы и создавать наборы ответов.
Но я получаю решение: Ответная строка:
'Протокол' Answerable 'может использоваться только в качестве общего ограничения, поскольку у него есть требования к Self или связанный тип.
Я понимаю, почему это так, но ...
Кто-нибудь может высказать какие-либо предложения о том, как реализовать это, чтобы я не столкнулся с этой проблемой?
Я стремлюсь реализовать протоколы, если это возможно, частично, чтобы я узнал о них.