У меня есть класс, MyClass
, и в другом классе у меня есть глобальная переменная массива:Swift: индекс для массива с пользовательским типом
var myArray:[MyClass]
В MyClass
у меня нет никакого массива.
Теперь, если я хочу, чтобы это сделать:
for index in 0..10 {
self.myArray[index] = //a new object
}
Я получаю сообщение об ошибке, что MyClass
не имеют индекс. Любые мысли о том, почему? Помните, что MyClass
не содержит в себе никаких массивов.
немного кода, чтобы показать вам, что я имею в виду:
class TheirClass {
var myArray: [MyClass] = [] // or use an initializer
func test() -> Void {
for index in 0..10 {
self.myArray[index] = MyClass()
}
}
}
class MyClass {
var prop1 = ""
var prop2 = 0
}
Проблема не в инициировании массива. Проблема заключается в доступе к его элементам с индексом: – Horatiu
Gotcha, но вам нужно вызвать массив из класса, из которого он пришел. myArray не существует в вашем текущем классе, если вы не сделали то, что я уже показал. Если да, дайте мне знать, и я продолжу это. –
Ты был прав Миннесоты. Когда я изменил способ инициирования, ошибка исчезла. Так что спасибо за комментарий, и извините, что до сих пор я этого не понимал. – Horatiu