如何从打印的结构中删除结构名称(swift4)

时间:2017-10-08 17:22:48

标签: ios swift struct printing

下面的代码打印结构数据。我只想打印没有结构名称的struct数据。我怎样才能做到这一点?另见下图。

   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

1 个答案:

答案 0 :(得分:0)

有一个名为 CustomStringConvertible 的协议,应该用于打印Struct。下面我演示了apple在其文档中提供的简单代码。

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

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

文档说明:在实现description属性并声明CustomStringConvertible一致性之后,Point类型提供了自己的自定义表示

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

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

Link is here