0

我知道之前有人问过这个问题,但其他问题与旧 Xcode 版本有关,答案表明这个错误已解决。

Xcode 8.1 (8B62)我在最新的(和)上收到此错误,但Swift3仍然找不到适合我的情况的解决方案。

发生在:

  • Swift 3并被Objective-C桥接在一起。
  • Swift代码调用Objective-C可能引发错误的方法(并非在所有情况下,但仅在特定情况下,下面包含的代码片段中有更多详细信息)。

我几乎整天都在为此苦苦挣扎,并将其本质剖析为能够重现此神秘错误的最小演示项目。上的每个人都可以使用它GitHub,因此请随时尝试并提供帮助:

更新 - 包括问题的解决方案和解释:(感谢@CodaFihttps://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
4

0 回答 0