在数组中获取NSButton的索引并将它们附加到swift中的整数数组(Cocoa)

时间:2015-09-02 08:22:25

标签: arrays swift cocoa

我是编程的新手,所以这可能是一个非常基本的问题。

我的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'的成员

我该如何解决这个问题?

1 个答案:

答案 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