我有一个类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
}
答案 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类型。