objective-c - 为什么 Xcode 的调试器在使用 Swift 时会这样跳来跳去?

标签 objective-c xcode debugging swift

我在Xcode 6中用F6调试了下面的代码,执行的顺序很有意思。

这是代码 - 7 行,在第 1 行设置断点:

    let request = AWSDynamoDBPutItemInput()
    request.tableName = "blah"

    let card = AWSDynamoDBAttributeValue()
    card.S = "1234"
    let email = AWSDynamoDBAttributeValue()
    email.S = "notset"

    request.item = ["card_number" : card, "email" : email]

当我 F6 通过代码时,它显示了以下序列(数字是行号):

1,2,4,2,3,4,6,4,5,6,7,6,7

这是为什么?这是 Xcode 还是语言的问题?这些类是在 Amazon 的 AWS SDK 中定义的,不确定是否重要,它们是通过 swift-objective-c 桥接访问的,这是否与桥接有关。

顺便说一句,执行的最终结果是正确的。

最佳答案

我认为您观察到的是编译器优化的效果。它在编译时重写你的代码。出于这个原因,通常在调试版本上禁用优化 (-Onone),但在发布版本上启用它(-Ofast-Os) .

关于objective-c - 为什么 Xcode 的调试器在使用 Swift 时会这样跳来跳去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707240/

相关文章:

objective-c - 我怎样才能告诉 MagicalRecord 不要使用基于文件的核心数据,而是使用内存设置?

ios - 在 Xcode 5.1 中使用 XCTAssertEqual 比较 CGPoint 时出错

iOS 7 UIWebView 304 缓存错误,空白页面

iphone - UIImagePickerController iPad 问题

ios - "Code signing "GoogleToolboxForMac.framework "failed"上传到 Itunes Connect 时

javascript - 有没有办法在 chrome 调试器中暂停卡住的脚本?

jquery - JavaScript console.log 导致错误 : "Synchronous XMLHttpRequest on the main thread is deprecated..."

debugging - Android Studio默认以 Debug模式启动

ios - 应用程序在 iPhone 上运行时崩溃,以违规为异常(exception)

ios - 找不到 Google 跟踪代码管理器容器 ios swift