我是编程的新手,所以这可能是一个非常基本的问题。
我的ViewController中有一个NSButtons(复选框)数组,我称之为“buttonArray”。我想通过数组,找出检查哪些按钮,并将这些选中按钮的索引添加到另一个整数数组(位于结构中),我称之为“intArray”。这是结构:
struct GetInterval {
var intArray = [Int]()
mutating func putIntIntoArray (intToAdd:Int) {
self.intArray.append(intToAdd)
}
}
我尝试过这两种方式(如下所示),这两种方式都给了我编译错误。
首先,我尝试使用函数将索引作为Int导入并将其添加到“intArray”数组中......
for interval in buttonArray {
if interval.state == NSOnState {
var intervalIndex = find(buttonArray, interval)
GetInterval.putIntIntoArray(Int(intervalIndex!))
}
}
...这给了我错误:“无法使用类型((int)的参数列表调用'putIntoArray')”
当它不起作用时,我尝试直接从ViewController中的“if”语句中追加它......
for interval in buttonArray {
if interval.state == NSOnState {
var intervalIndex = find(buttonArray, interval)
GetInterval.intArray.append(intervalIndex!)
}
}
...这给了我错误:“ GetInterval.Type没有名为'intArray'的成员”
我该如何解决这个问题?
答案 0 :(得分:0)
当您说GetInterval.(something)
时,这是指静态成员(例如,GetInterval类型拥有的东西)。但是,您的intArray
是GetInterval类型的每个实例所拥有的成员。所以你需要先创建一个实例。例如:
var getInt = GetInterval() // create a new instance
getInt.putIntIntoArray(...) // modify this instance, by calling a mutating function
getInt.intArray.append(...) // modify this instance, by directly accessing a property