Ответ 1
Вы получите это сообщение об ошибке в Xcode 7 (Swift 2), если подкласс объявит о соответствии к протоколу, который уже унаследован от суперкласса. Пример:
class MyClass : CustomStringConvertible {
var description: String { return "MyClass" }
}
class Subclass : MyClass, CustomStringConvertible {
override var description: String { return "Subclass" }
}
Журнал ошибок показывает:
main.swift:10:27: error: redundant conformance of 'Subclass' to protocol 'CustomStringConvertible' class Subclass : MyClass, CustomStringConvertible { ^ main.swift:10:7: note: 'Subclass' inherits conformance to protocol 'CustomStringConvertible' from superclass here class Subclass : MyClass, CustomStringConvertible { ^
Удаление соответствия протокола из декларации подкласса решает проблему:
class Subclass : MyClass {
override var description: String { return "Subclass" }
}
Но суперкласс должен объявить соответствие явно, это
не автоматически определяется из существования description
свойство.