Non è sufficiente aggiungere solo una variabile description
. È inoltre necessario specificare che la classe è conforme a CustomStringConvertible
(precedentemente noto come Printable
nelle versioni precedenti di Swift).
Se si fa clic sul comando, fare clic sulla funzione print
, si trova la seguente descrizione.
Scrive la rappresentazione testuale del value
, e un ritorno a capo facoltativa, in standard output.
La rappresentazione testuale è ottenuto dalla value
usando il suo protocollo conformità sono, nel seguente ordine di preferenza: Streamable
, CustomStringConvertible
, CustomDebugStringConvertible
. Se nessuna di queste conformità è stata trovata, viene creata una rappresentazione di testo predefinita in un modo definito dall'implementazione, in base al tipo e alla struttura del tipo.
La parte della quale che conta qui è che gli oggetti passati a print
non sono controllati per se o non hanno un metodo description
, ma invece verificato per le cose come se il conformi ai protocolli come CustomStringConvertible
che offrono i dati da stampare
Detto questo, tutto ciò che devi fare in questo caso è specificare che la tua classe è conforme a CustomStringConvertible
dato che hai già aggiunto una variabile description
. Se non lo avessi già aggiunto, il compilatore si lamenterebbe perché questo protocollo richiede l'implementazione della variabile description
.
class Digit: CustomStringConvertible {
var num: Int
var x: Int
var y: Int
var box: Int
var hintList: [Int] = []
var guess: Bool = false
var description: String {
let string = String(num)
return string
}
}
fonte
2015-06-17 15:58:52