2017-10-10 7 views
2

以下のMy Codeは、構造体をどのように出力したいのですか?私はそれを削除したいだけです。私は下の写真のテキストを丸で囲んだ。私はそれが[人]と関係があると感じています。print struct(swift4)から[]を削除するには

 var contacts = [Person]() 

@IBAction func press(_ sender: Any) { 
    contacts.append(Person(name: a.text!, phone: Int(c.text!)!)) 
    label.text = self.contacts.description 
}} 
struct Person { 
var name: String 
var phone: Int} 

extension Person: CustomStringConvertible { 
var description: String { 
return "\n\(name),\(phone)" 
    }} 

enter image description here

答えて

0

あなたは人の列...だけではなく一人を印刷しています。だから、角括弧を取得:

bash-3.2$ swift 
Welcome to Apple Swift version 4.0 (swiftlang-900.0.63 clang-900.0.37). Type :help for assistance. 
1> struct Person { var name: String; var phone: Int} 
2> var contacts = [Person]() 
contacts: [Person] = 0 values 
3> contacts.append(Person(name: "john", phone: 911)) 
4> extension Person: CustomStringConvertible { public var description: String { return "\n\(name),\(phone)" }} 
5> print(contacts) 
[ 
john,911] 
6> print(contacts[0]) 

john,911 

私はあなたがこのような何かを行うことができます推測:これは、改行で区切られた各コンタクトを備えた単一の文字列にすべての連絡先を参加します

label.text = contacts.count == 0 ? "No people to contact" : contacts.map {$0.description}.joined(separator: "\n") 

また、joinedがセパレータを提供するため、CustomStringConvertibleの最初の改行を取り除いてください。

+0

これは動作しますが、1行しか印刷できません。 –

+0

私はあなたのために連絡先に参加しました。それがあなたのために働くかどうか私に教えてください。 (あなたの解決策として私の答えをチェックしてください!) –

関連する問題