2016-07-11 1 views
0

구조체가 있고 뭔가를 쓰고 내 구조체에 쓰는 단추를 만든 단추를 만들었습니다. 올바른 코드를 작성하는 방법에 문제가있어서 버튼의 텍스트를 구조체에 올바르게 추가합니다. 여기 단추에서 구조체에 추가하는 방법

내 구조체입니다 :

struct Candy{ 
    let category : String 
    let name : String 
} 

candies = [ 
    Candy(category:"test", name:"test 2"), 
    Candy(category:"test", name:"test 4"), 
    Candy(category:"test", name:"test 1"), 
    Candy(category:"Music", name:"J-cole"), 
    Candy(category:"Music", name:"Jay-z"), 
    Candy(category:"Music", name:"Coldplay"), 
    Candy(category:"Other", name:"Sophie"), 
    Candy(category:"Other", name:"Frederic"), 
    Candy(category:"Other", name:"test")] 

    } 

그리고 이것은 내 버튼에 대한 코드입니다

귀하의 문제 라인은이를 작성해야하는 위치 배열에 간단한 문자열을 추가하려고
@IBAction func addBar(sender: AnyObject) { 

    let alert = UIAlertController(title: "New name", 
            message: "Write name", 
            preferredStyle: .Alert) 

    let saveAction = UIAlertAction(title: "Save", 
            style: .Default, 
            handler: { (action:UIAlertAction) -> Void in 

            let textField = alert.textFields!.first 

            self.candies.append(textField!.text!) // I have troubles with this line... not sure how to make this line correct.. 


            self.tableView.reloadData() 
+0

,이 같은 기록 된'Candy' 구조체,의'Array'있어이 도움이되기를 바랍니다. – Alexander

+0

무엇이 문제입니까? – Alexander

+1

사이드 노트 :'category'는 아마도'enum'으로 더 나을 것입니다. 'enum'에 대한 언어 가이드 부분을보십시오. – Alexander

답변

0

을 이 방법으로 같은 유형 Candy의 배열 candies :하여 Candy의 이름 속성으로 textField!.text! 저장에 내가 가정 위에서

self.candies.append(Candy(category:"NameYouWant", name: textField!.text!)) 

은 당신이 원하는,하지만 당신이 원하는대로 변경할 수 있습니다. `배열 `, 또는`[캔디]`짧게 :

난 당신이

구조체 아니다
+0

이제 새로운 오류가 발생합니다 :이 클래스는 키 addBar에 대해 코드 호환이되는 키 값이 아닙니다. ' – Frederic

+1

요청한 문제와 다른 매우 다른 오류가 발생했습니다.이 답변을 참조하십시오. http://stackoverflow.com/questions/3088059/what-does-this-mean-nsunknownkeyexception-reasonthis-class-is-not-key- 가치 –

0

귀하의 구조체의 새로운 인스턴스를 추가합니다. 당신이 한 문자열이 있고 구조체이 사용되기 때문에, 그 작동 방법을 정확히 명확하지 않다,하지만 같은 뭔가 : 당신은에 추가하기 위해 구조체 Candy의 인스턴스를 만들 필요가

self.candies.append(Candy(category: "xxx", name: textField!.text!)) 
관련 문제