我知道之前有人问过这个问题,但其他问题与旧 Xcode 版本有关,答案表明这个错误已解决。
Xcode 8.1 (8B62)
我在最新的(和)上收到此错误,但Swift3
仍然找不到适合我的情况的解决方案。
发生在:
Swift 3
并被Objective-C
桥接在一起。Swift
代码调用Objective-C
可能引发错误的方法(并非在所有情况下,但仅在特定情况下,下面包含的代码片段中有更多详细信息)。
我几乎整天都在为此苦苦挣扎,并将其本质剖析为能够重现此神秘错误的最小演示项目。上的每个人都可以使用它GitHub
,因此请随时尝试并提供帮助:
更新 - 包括问题的解决方案和解释:(感谢@CodaFi) https://github.com/lukaszmargielewski/SegmentationFault11
这是导致它的代码:
斯威夫特 3 代码:
class SegmentationFault11 {
let responseProcessor = NetworkResponseProcessor() // Objective-C class
let url = URL(string: "https://example.com")!
func epicFail() {
URLSession.shared.dataTask(with: url) { (data, response, error) in
do {
_ = try self.responseProcessor.process(response, data: data, networkError: error)
} catch {}
}.resume()
}
}
Objective-C 代码:
// NetworkResponseProcessor.h
@interface NetworkResponseProcessor : NSObject
- (nullable id)process:(nullable NSURLResponse *)response
data:(nullable NSData *)data
networkError:(nullable NSError *)networkError
error:(NSError * _Nonnull * _Nullable)error;
@end