Аналогично по духу этот вопрос, за исключением того, что вместо того, чтобы ограничивать протокол только классами, я хочу иметь возможность определять протокол, который может быть принят только перечисления, структуры и т.д. Возможно ли это?
Как ограничить протокол только значениями типов?
Ответ 1
Я не мог найти ответ, но, играя, я пришел к выводу, что вы не можете. Чтобы ограничить протокол только классами, перед ним следует class
, например
protocol SomeProto: class {
func structYourStuff() -> Void
}
Сделав предположение, что это будет согласовано между другими типами, я попытался
protocol SomeProto: struct {
func structYourStuff() -> Void
}
Но Xcode дал мне пять разных ошибок на одной строке, что привело меня к выводу, что вы не можете. Я мог быть совершенно не прав, хотя я только начал изучать Свифта около недели назад.