如何在Swift中更改自定义结构和类的默认嵌入字符串

时间:2014-06-08 21:44:12

标签: swift

假设我有一个代码结构:

struct Point {
  var x = 0.0
  var y = 0.0
}

var p = Point(x: 5.0, y: 3.0)
println("\(p)")

我会得到:

V6<AppName>8Point (has 2 children)

无论如何将它转换成自定义的东西?在Objective-C中,我相信description()方法涵盖了这一点,但这不适用于此。

3 个答案:

答案 0 :(得分:3)

是的,你可以!查看Apple docs on the Printable protocol

来自文档的示例代码:

struct MyType: Printable {
    var name = "Untitled"
    var description: String {
        return "MyType: \(name)"
    }
}

let value = MyType()
println("Created a \(value)")
// prints "Created a MyType: Untitled"

答案 1 :(得分:3)

对于最近来到这里的人(Swift 2.0),Printable协议已重命名为CustomStringConvertible

答案 2 :(得分:1)

您需要实施Printable协议。只需让您的类实现协议并添加此属性:

var description: String { get }