当我运行以下代码(一个简化示例,为演示崩溃而创建)时,它会在我选择Run时按预期执行(两个os_log消息都在Console中打印)。
然而,当我在Memory Debug Navigator中打开它时 - 按下Restart - 它崩溃了(只有第一个os_log消息在Console中打印)。
坠机发生在观察(...)。
import os
import UIKit
class ObserverCrashingExample: NSObject {
@objc private var animation: UIViewPropertyAnimator?
private var observer: NSKeyValueObservation?
override init() {
super.init()
animation = UIViewPropertyAnimator( duration: 1, curve: .linear, animations: { })
animation!.pauseAnimation()
os_log("X_AMPLE Executes")
observer = animation!.observe(\.isRunning, options: [.new, .old]) { _ , _ in }
os_log("X_AMPLE Does not execute")
}
required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }
}
我正在运行Xcode 9.3,Swift 4.1,iOS 11.3部署目标。
有什么想法吗?这是编译器问题吗?
干杯
答案 0 :(得分:0)
我尝试了三个单词: