2016-10-18 7 views
-2

Swiftを習得し始めました。基本的なスピーディーなプログラミングを始める際のビデオを見て、講師のコードを自分のXcodeに直接コピーしました。しかし、自分のコードに誤りがあります。私はすべてを同じようにしたことを3倍にチェックしました。コードは以下の通りです。最後の行は、対象のエラーを示します。Swift Error:リストタイプ '(String)'の引数を持つ 'append'を呼び出せません。

var items:[String] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

@IBAction func additem(sender: AnyObject) { 
    if (txtinput.text! == ""){ 
     return 
    } 
    items.append(txtinput.text!) 
    txtoutput.text = "" 
    for item in items { 
     txtoutput.text.append("\(item)\n") 
+1

どのバージョンのXcodeとどのバージョンのSwiftを使用していますか? – rmaddy

+1

と 'txtoutput'とは何ですか? –

答えて

1

おそらくtextタイプStringです。 Stringにはappendというメソッドはありません。通常は、しかし、あなたがappendを呼び出すことができるように、拡張機能を記述することも可能です...

txtoutput.text = txtoutput.text + "\(item)\n" // or 
txtoutput.text += "\(item)\n" 

を使用します。おそらくこれは見たサンプルに存在していたものでしょうか?

extension String { 
    mutating func append(str: String) { 
     self = self + str 
    } 
} 
+0

ええ。私は長すぎました。あなたのためにupvote –

+0

Swift 3では、 'String' *は[' append(_:) '](https://developer.apple.com/reference/swift/string/1641225-append)メソッドを持っていることに注意してください。 – Hamish

1

Stringを既存のStringに追加する必要があります。 あなたの場合:

@IBAction func additem(sender: AnyObject) { 
    if (txtinput.text! == ""){ 
     return 
    } 
    items.append(txtinput.text!) 
    txtoutput.text = "" 

    for item in items { 
     txtoutput.text = (txtoutput.text)! + "\(item)\n" 
    } 
} 
+0

damnit ...あまりにも長い時間がかかりました...マイケルは速くなりました:) –

+0

しかし、あなたのためのupvoteもOPにはおそらくオプションがあります。 – Michael

関連する問題