2017-10-08 64 views
0

我的代碼如下打印結構體數據。我只想打印沒有結構名稱的結構數據。我怎樣才能做到這一點?另請參閱下面的圖片。如何從打印結構中刪除結構體名稱(swift4)

var contacts = [Person]() 
override func viewDidLoad() { 
    super.viewDidLoad() 
} 
    @IBAction func press(_ sender: Any) { 
     contacts.append(Person(name: a.text!, phone: Int(c.text!)!)) 
     print(self.contacts.description) 

     label.text = self.contacts.description 
    } 

    struct Person { 
     var name: String 

     var phone: Int 

    }} 

enter image description here

+0

而不是張貼同一問題的多個問題。你應該仔細閱讀,並在你之前的問題已經提供的答案上加倍注意。 –

+0

順便說一句,你仍然使用整數的電話號碼,無論有多少人警告你。將其更改爲字符串! - –

回答

0

有一個名爲CustomStringConvertible協議應被用於印刷結構體。下面我已經演示了蘋果在其文檔中提供的簡單代碼。

struct Point { 
     let x: Int, y: Int 
    } 

    let p = Point(x: 21, y: 30) 
    print(p) 
    // Prints "Point(x: 21, y: 30)" 

文件說:實施描述屬性,並宣佈CustomStringConvertible一致性後,Point類型提供了自己的自定義表示

 extension Point: CustomStringConvertible { 
     var description: String { 
     return "(\(x), \(y))" 
     } 
    } 

    print(p) 
    // Prints "(21, 30)" 

Link is here

+0

代碼中的這兩個部分都是獨立的,這意味着它們不相互關聯。或者他們需要彼此的工作? –

+0

他們需要彼此的工作。請查看我在代碼的最後一段提供的鏈接 –

+0

您應該檢查[此StackOverflow問題](https://stackoverflow.com/questions/46614785/print-appended-struct-swift4?noredirect=1&lq= 1)。看到rmaddy給出的最後一個答案 –