静态库中的 NSURLConnection sendAsynchronousRequest 在模拟器上崩溃

NSURLConnection sendAsynchronousRequest in static library crashes on simulator

我正在编译一个包含以下内容的静态库(FAT 二进制文件):

    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init]; // also tried [NSOperationQueue mainQueue]
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        // CRASH BEFORE BLOCK EXECUTES
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
        ...

如果使用设备和模拟器上的应用程序编译,代码本身运行良好,但仅在模拟器上用作另一个应用程序中的静态库时,代码会崩溃。静态库在 iOS 设备上运行良好。崩溃是 EXC_BAD_ACCESS,通过做一些日志记录,我将它缩小到 sendAsynchronousRequest。该块未被调用。

知道哪里出了问题吗?

您创建自己的队列是否有原因?尝试使用 [NSOperationQueue mainQueue] 作为队列

我可以改用 NSURLConnectionDelegate 方法来修复它。我仍然想知道它为什么会崩溃,如果您有任何想法,请发表评论。