【问题标题】:Swift 2.0 Defer Not working in XCode 7.0.1?Swift 2.0 Defer 在 XCode 7.0.1 中不起作用?
【发布时间】:2015-10-03 07:47:14
【问题描述】:

我有一个带有 defer 块的简单代码块,但 Playground 没有执行 defer 块。我究竟做错了什么?

打印以下内容: “第1步” “第 3 步” “第4步” “第五步”

import UIKit

print("Step 1")

do {
    defer { print("Step 2") }
    print("Step 3")
    print("Step 4")
} 

print("Step 5")

【问题讨论】:

  • 你确定吗?为我工作。
  • 对我来说,它在项目中工作,但在操场上没有工作。

标签: ios xcode swift swift2 ios9


【解决方案1】:

你确定你在看控制台吗?如果是这样,则操场上一定有错误。以下是我从您的代码中得到的信息:
http://i.stack.imgur.com/En6kn.png

【讨论】:

  • 我看到 10 月 3 日 03:21:05 defer[4160] :CGContextTranslateCTM:无效上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。
  • 这实际上是 Xcode 7 中 iOS Playground 中的错误。查看 Apple 开发者论坛:forums.developer.apple.com/thread/13683
【解决方案2】:

我认为playground 中存在错误。

如果你试试这个代码

var d = 0
print("Step 1")

    do {
        defer {
            d = 1
        }
        print("Step 3")
        print("Step 4")
    }
    print(d)
    print("Step 5")

您将看到值d 更新为值1,因此调用了该语句。

肯定有bug,你的代码没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多