У меня есть следующий протокол, с 1 варом и 2 индексами:Ошибка при реализации подстрочного, определенных в Протоколе в Swift
protocol Universe{
var count: Int{get}
subscript(heroAtIndex index: Int)->SuperPowered {get}
subscript(villainAtIndex index: Int)->SuperPowered {get}
}
При попытке реализовать этот протокол в этом классе:
class Marvel: Universe{
var _heroes = [
SuperPowered.heroWithFirstName("Peter", lastName: "Parker", alias: "Spiderman"),
SuperPowered.heroWithFirstName("Scott", lastName: "Summers", alias: "Cyclops"),
SuperPowered.heroWithFirstName("Ororo", lastName: "Monroe", alias: "Storm")]
var _villains = [
SuperPowered.villainWithFirstName("Victor", lastName: "Von Doom", alias: "Dr Doom"),
SuperPowered.villainWithFirstName("Erik", lastName: "Lehnsher", alias: "Magneto"),
SuperPowered.villainWithFirstName("Cain", lastName: "Marko", alias: "Juggernaut")]
// UNiverse protocol
var count : Int{
get{
return _heroes.count + _villains.count
}
}
subscript(heroAtIndex index: Int)->SuperPowered{
return _heroes[index]
}
}
Я получаю сообщение об ошибке в строке las (индекс). Он жалуется, что
method 'subscript(heroAtIndex:)' has different argument names from those required by protocol 'Universe' ('subscript(villainAtIndex:)')
subscript(heroAtIndex index: Int)->SuperPowered{
^
Я понятия не имею, что компилятор говорит о: имена одни и те же, и я даже скопировать и вставить.
Что происходит?
Ребята, можете ли вы поверить, что ошибка уходит, как только я внедряю ОБА из индексов? Пока только один реализован, он не справляется с этой безумной ошибкой ... – cfischer