Không đủ để chỉ thêm biến description
. Bạn cũng cần nêu rõ rằng lớp học của bạn tuân theo CustomStringConvertible
(trước đây được gọi là Printable
trong các phiên bản Swift trước đó).
Nếu bạn chỉ huy nhấp vào hàm print
, bạn sẽ tìm thấy mô tả sau.
Ghi đại diện văn bản value
và dòng mới tùy chọn, vào đầu ra tiêu chuẩn.
Các đại diện văn bản được lấy từ các value
sử dụng giao thức conformances của nó, theo thứ tự ưu tiên sau: Streamable
, CustomStringConvertible
, CustomDebugStringConvertible
. Nếu không tìm thấy sự phù hợp nào trong số , thì văn bản mặc định được xây dựng theo cách được triển khai, dựa trên loại và cấu trúc loại.
Phần trong đó có vấn đề ở đây là các đối tượng thông qua với print
không được kiểm tra hay không mà họ có một phương pháp description
, nhưng thay vào đó kiểm tra cho những việc như có hay không phù hợp với các giao thức như CustomStringConvertible
trong đó cung cấp dữ liệu Được in.
Điều đó đang được nói, tất cả những gì bạn cần làm trong trường hợp này là xác định rằng lớp học của bạn tuân theo CustomStringConvertible
vì bạn đã thêm biến số description
. Nếu bạn chưa thêm điều này, trình biên dịch sẽ phàn nàn vì giao thức này yêu cầu phải thực hiện biến số 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
}
}
Nguồn
2015-06-17 15:58:52