2015-09-02 73 views
0

我對編程非常陌生,所以這可能是一個非常基本的問題。獲取數組中的NSButtons的索引並將它們附加到swift中的整數數組(可可)

我在我的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!)) 
    } 
} 

...它給我的錯誤:「無法援引「putIntoArray」類型的參數列表((INT))如果‘「

如果沒有工作,我嘗試直接從它附加’語句中的ViewController ...

for interval in buttonArray { 
    if interval.state == NSOnState { 
     var intervalIndex = find(buttonArray, interval) 
     GetInterval.intArray.append(intervalIndex!) 
    } 
} 

...它給了我錯誤:「GetInterval.Type沒有名爲'intArray'的成員

我該如何解決這個問題?

回答

0

當你說GetInterval.(something)時,這指的是一個靜態成員(a.k.a.,屬於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 
相關問題