Swift:具有自定义类型的数组的下标

时间:2014-09-28 15:19:29

标签: ios swift

我有一个类MyClass,而在另一个类中我有一个全局变量数组:

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
}

2 个答案:

答案 0 :(得分:0)

如果你从另一个类调用var,你必须像我在下面那样解决它:

class TheirClass {
    var myArray: [MyClass] = []  // or use an initializer
}

class MyClass {
    var objectArray = TheirClass().myArray  
}

不确定这是否是您打算做的。让我知道,我可以改变代码以符合您的目的。

答案 1 :(得分:0)

您在Swift中不存在的代码中有..。您可能意味着...,但也有..<

但是,初始化程序中有一个大小为零的数组,这意味着您无法为其添加值。您要么必须首先创建一个正确大小的新数组,要么使用myArray += [MyClass()]附加到它。

另请注意,-> Void是不必要的 - 如果您没有返回类型,则它将隐式为void类型。