Ответ 1
Свойство description
- это то, что вы ищете. Это свойство, к которому обращаются при печати переменной, содержащей объект.
Вы можете добавить description
в свои собственные классы, приняв протокол CustomStringConvertible
, а затем реализуя свойство description
.
class MyClass: CustomStringConvertible {
var val = 17
public var description: String { return "MyClass: \(val)" }
}
let myobj = MyClass()
myobj.val = 12
print(myobj) // "MyClass: 12"
description
также используется, когда вы вызываете конструктор String
:
let str = String(myobj) // str == "MyClass: 12"
Это рекомендуемый метод для доступа к описанию экземпляра (в отличие от myobj.description
, который не будет работать, если класс не реализует CustomStringConvertible
)