当我运行data = try! Data(contentsOf: url)
时,我的应用程序崩溃了,并且出现了此错误。我尝试添加UIConstraintBasedLayoutDebugging
断点,但是并没有太大帮助。
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2019-09-23 15:59:55.228440-0600 Biobot[15968:547259] -[LGSideMenuController isLoading]: unrecognized selector sent to instance 0x7f9cf90a1a00
Warning: hit breakpoint while running function, skipping commands and conditions to prevent recursion.
error: Execution was interrupted, reason: breakpoint 4.1.
The process has been returned to the state before expression evaluation.
我的代码中甚至没有[LGSideMenuController isLoading]
。这次我真的迷路了,因为今天早上代码工作得很好。我将我的xcode更新为版本11,我不知道这是否可能导致问题
答案 0 :(得分:1)
更新:
仅当从本地存储加载数据时才应使用Data(contentsOf: url)
(因此,仅以file://
开头的url)。从Internet加载数据时,应使用URLSession:
URLSession.shared.dataTask(with: url) { (data, response, error) in
DispatchQueue.main.async { //all changes to UI must be called on main thread
if let error = error {
print("Error: \(error)")
return
}
//transform your data and update UI
self.label.text = "Loaded data: \(data)"
}
}.resume()
其中self.label.text = "Loaded data: \(data)"
是可以处理所获取数据的示例。
尝试避免使用try!
。代替使用do{} catch {}
。您的代码可能无法按预期工作(它不能解决问题,但您将能够获得更多详细信息)。因此,在您的代码中执行以下操作:
do {
data = try Data(contentsOf: url)
} catch {
print("\(error)")
}
对我来说,您的错误看起来与数据加载无关。它看起来更像是内存处理方面的问题,因为您有一个指向LGSideMenuController
实例的指针,而您(或您正在使用的一个库)尝试在上调用isLoading
方法它。