2017-10-08 65 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给出的最后一个答案 –