为啥我的 Printable 实现在 Swift 操场上不起作用?

Posted

技术标签:

【中文标题】为啥我的 Printable 实现在 Swift 操场上不起作用?【英文标题】:Why is my Printable implementation not working in Swift playground?为什么我的 Printable 实现在 Swift 操场上不起作用? 【发布时间】:2015-01-18 12:36:08 【问题描述】:

在 Swift 游乐场中考虑这段代码:

import Cocoa
class Thing: Printable 
    let name: String
    init() 
        name = "something"
    
    var description: String  return name 


let a = Thing()
println("hello, \(a)")

作为图片:

预期:我希望最后一行打印“hello, something”。

观察到:它打印“hello, __lldb_expr_1.Thing”,就好像我没有实现 Printable 协议一样。

代码实际上在真正的 ios 应用程序的上下文中工作,它使用 Printable 协议按预期打印“hello, something”。

为什么这段代码没有打印出我在操场上所期望的内容?这是游乐场的限制吗?

【问题讨论】:

是的,这似乎是操场的限制,正如这里注意到的***.com/a/27830622/1187415:“我发现 println 和 debugPrintln 都使用描述 if-and-only-if 类下降来自 NSObject。” 有趣。是的,当我从 NSObject 继承时,它在 Playground 中工作。但感觉它也应该在没有的情况下工作。我正在关注 WWDC 2014 的 Session 404 “Advanced Swift”。它没有专门讨论 Playgrounds,但它确实使用这种方法来记录不继承自 NSObject 的 Swift 对象。 是时候提交另一个错误报告了 :) 【参考方案1】:

我认为这个错误已在 Swift 1.2 中修复

【讨论】:

以上是关于为啥我的 Printable 实现在 Swift 操场上不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

EXC_BAD_INSTRUCTION 对象数组赋值 Swift

为啥我的图像无法在 Swift 中正确加载

为啥我的变量值在 Swift 中恢复?

为啥我的 Swift 类的扩展在定义文件之外不可见?

为啥我的 json 编码对象在 Swift 中为零

为啥我的 Firebase/Auth 包没有安装在 xcode(swift 5) 中?