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

时间:2015-01-21 01:53:32

标签: ios iphone nsurlconnection static-libraries objective-c-blocks

我正在编译一个包含以下内容的静态库(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。该块不会被调用。

知道可能出现什么问题吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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