trzeba zaimplementować protokół Printable
:
Protokół ten powinien zostać przyjęty do typów, które chcą dostosować ich reprezentacja tekstowa. Ta reprezentacja tekstowa jest używana, gdy obiekty są zapisywane do OutputStreamType
.
protocol Printable {
var description: String { get }
}
Jest też protokół DebugPrintable
kiedy jest tylko do celów debugowania:
Protokół ten powinien zostać przyjęty do typów, które chcą dostosować ich tekstową reprezentację wykorzystywane do celów diagnostycznych. Ta reprezentacja tekstowa jest używana, gdy obiekty są zapisywane pod adresem OutputStreamType
.
protocol DebugPrintable {
var debugDescription: String { get }
}
Documentation (Dzięki @MartinR)
Uwaga: W @Antonio i @MartinR wspomniano w komentarzach, to nie działa na placu zabaw (od Xcode6 GM w każdym razie) ; to znany błąd. Działa w skompilowanych aplikacjach.
Z Xcode6 GM Release Notes:
na placach zabaw, println() ignoruje druku zgodność z typów zdefiniowanych przez użytkownika. (16562388)
jako Swift 2,0 Printable
stał się CustomStringConvertible
. Wszystko pozostaje takie samo jak przedtem, trzeba jeszcze wdrożyć
var description: String { get }
ale teraz jego nazwie CustomStringConvertible. I debugowania jest CustomDebugStringConvertible
Czy jesteś pewien, że to działa? Myślałem, że to samo, próbowałem na boisku i to widać coś w rodzaju '__lldb_expr_551. Test "Niezależnie od' Wydrukowanego 'zaimplementowanego lub nie – Antonio
Dokumentacja jest również dostępna tutaj: https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibr aryReference/Printing.html. –
Interesujące. Działa w skompilowanej aplikacji, ale nie na placu zabaw. –