Sadece bir description
değişken eklemek için yeterli değildir. Sınıfınızın CustomStringConvertible
(eski Swift sürümlerinde eskiden Printable
olarak bilinir) ile uyumlu olduğunu da belirtmeniz gerekir.
print
işlevini tıklatırsanız, aşağıdaki açıklamayı bulabilirsiniz.
value
metinsel gösterimi ve standart çıkış içine isteğe bağlı bir yeni satır, yazar.
metinsel gösterimi aşağıdaki tercih sırasıyla olarak kendi protokol uygunsuzlukları kullanılarak value
elde edilir: Streamable
, CustomStringConvertible
, CustomDebugStringConvertible
. bu uyumsuzlukların hiçbiri bulunmazsa, türün türüne ve yapısına bağlı olarak, uygulama tanımlı bir şekilde varsayılan metin temsili oluşturulur.
print
geçirilen nesneler onlar description
yöntem olsa da olmasa da kontrol, ancak bunun yerine verileri sunan CustomStringConvertible
gibi protokollere uygun olup olmadığı gibi şeyler için işaretli olmadığından emin olmak burada önemli olan kısmı basılmak üzere.
Bu durumda, yapmanız gereken tek şey, zaten bir description
değişkeni eklediğiniz için sınıfınızın CustomStringConvertible
ile uyumlu olduğunu belirtmektir. Bunu daha önce eklemediyseniz, derleyici bu kuralın description
değişkeninin uygulanmasını gerektirdiğinden şikayetçi olacaktır.
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
}
}