【问题标题】: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”。

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

【问题讨论】:

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

标签: swift swift-playground


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多