2016-03-31 17 views
0

için bir NSButtons Array oluşturun ve tanımlayın. Bunu bir NSButtons Dizisi tanımlayarak denedim. Çalışırken ölümcül bir hata alıyorum: Dizi dizini aralık dışı (lldb). Swift ve kısmen disleksik olarak kısmen yetkili olmak, herhangi bir yardımı takdir edecektir. Geçmiş cevaplara bakmaya çalıştım, ancak yararlı bir şey bulamadı.ViewController'da OSX'te bir dizi NSButton oluşturmaya çalışan OSX

var arrayOfButton: [NSButton] = [] 
    for counter in 0...3 { 
     var tempButton = NSButton(frame: NSRect(x: 160 * counter, y: 40 * counter , width: 150, height: 30)) 
     print("created tempButton") 
     arrayOfButton[counter] = tempButton 
     arrayOfButton[counter].title = "Button \(counter)" 
     self.view.addSubview(arrayOfButton[counter]) 
     } 

cevap

0

Diziye eklenmeyi deneyin;

arrayOfButton.append(tempButton) 
0

Dizinizde 0 düğme vardır, ancak sayaç endekslerini boş bir diziye çağırarak indeks hatasına neden oluyorsunuz. Eğer düğmeler bir dizi oluşturmak ve daha sonra boş olması tanımlamak Kodunuzda

arrayOfButtons.apend(temp)

0

tarafından geçici düğmesine eklemeyi deneyin.

var arrayOfButton: [NSButton] = [] 

Sonra bir döngüye girebilir ve dizinin ilk elemanını adrese deneyin:

arrayOfButton[counter] = tempButton 

Ama dizi boştur. İlk elementi yok. Hiç bir unsuru yok. Diziye hiçbir şey koymadınız.

// Use append to put the temp button into the array 
arrayOfButton.append(tempButton) 
+0

Teşekkür ederiz user2277872, @dreamriver ve John. Bu benim aptalımdı! – lee

+0

'func buttonPressed (düğme: NSButton?) { düğmesi! .title =" basıldı " }' Düğmelere bastığımda, eylem yürütülmez. Manuel fucntion araması yaparsam, o yapar. – lee

0

arrayOfButton[counter] = tempButton: Dizi elemanı 0 0.

diziye içine geçici düğmesini koymak için hiçbir elemanını olmadığından dizi için sınırların dışında, kendi dizinin sonuna üzerine eklemek gerek .

Bu boş bir dizidir. Sıfır elemanına atamaya çalışmak hiçbir anlam ifade etmiyor. Dizininizi doldurmak için .append'u deneyin.