Рассмотрим этот код в Swift игровой площадки:Почему моя версия для печати не работает на детской площадке Swift?
import Cocoa
class Thing: Printable {
let name: String
init() {
name = "something"
}
var description: String { return name }
}
let a = Thing()
println("hello, \(a)")
Как изображение:
Ожидаемое: Я ожидаю, что последняя строка для печати "привет, что-то".
Соблюдается: он печатает «привет, __lldb_expr_1.Thing», как если бы я не реализовал протокол Printable.
Код фактически работает в контексте реального приложения iOS, где он печатает «привет, что-то», используя протокол печати, как и ожидалось.
Почему этот код не печатает то, что я ожидаю на детской площадке? Это ограничение игровых площадок?
Да, кажется, ограничение на игровой площадке, так как заметил здесь http://stackoverflow.com/a/27830622/1187415: *» Я считаю, что и println, и debugPrintln используют описание if-and-only - если класс спускается из NSObject. "* –
Интересно. Да, он работает на игровой площадке, когда я наследую NSObject. Но чувствует, что он тоже должен работать. Я следую Session 404 «Advanced Swift» от WWDC 2014. Он не говорит конкретно о игровых площадках, но использует этот подход для регистрации объекта Swift, который не наследуется от NSObject. – Jaanus
Время записи другого сообщения об ошибке :) –