iphone - 调试器停止在 ASIHTTPRequest 的 scheduleReadStream 上没有错误

标签 iphone ios asihttprequest grand-central-dispatch nsoperationqueue

调试器在 ASIHTTPRequest 的 scheduleReadStream 方法中暂停,但没有产生任何错误。

更具体地说,它在这一行停止:

[[self readStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:[self runLoopMode]];

无论我点击播放多少次,它都不会离开这条线或在控制台中报告任何错误。然而,我确实注意到,当我点击播放时,主线程通过它的一些操作前进。

我的设置方式是,我有一个在后台线程上工作的下载器(因此它可以在从已完成的请求中接收到它时进行解析和图像处理)。此下载器对象使用 ASINetworkQueue 来安排请求。我想知道这是否会导致僵局。

这是在解析来自刚完成的请求(不是队列的一部分)的一些数据后将请求添加到队列的代码片段。

- (void)requestFinished:(ASIHTTPRequest *)request
{
    dispatch_async(serialQueue, ^{
        NSData *responseData = [request responseData];
        NSXMLParser *parser = [[NSXMLParser alloc] initWithData:responseData];
        [parser setDelegate:self];
        if ([parser parse]) {
            //Add pending operations
            for (NSNumber * key in self.currentRequests.keyEnumerator) {
                //Unrelated code getting the request from a dictionary
                [self.networkQueue addOperation:request];
            }
            [self.networkQueue go];
        }
    });
}

请注意,我还在整个代码中异步执行不相关的请求,这可能会在填充/通知此队列的同时进行。

最佳答案

想通了。原来有一个 EXC_BAD_ACCESS 但它在 iPhone 上运行时没有出现。在模拟器上运行时,它实际上正确显示。这种错误的访问是由于我没有使用 initWithURL 方法,而是设置了 URL(因为在创建对象时我还没有可用的 URL)。一旦 URL 准备就绪并且一切正常,我现在调用 initWithURL

关于iphone - 调试器停止在 ASIHTTPRequest 的 scheduleReadStream 上没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8906758/

相关文章:

objective-c - ASIHTTPRequest:一个(潜在的)特定于运营商的问题,同时上传数据/服务器收到空白 POST

iphone - 从 Objective-C 中的文本文件读取单行

iphone - 如何在多部 iPhone 上使用相同的 sqlite 数据

iphone - 更改使用 loadNibNamed 实例化的类

ios - 检查推送通知注册 : isRegisteredForRemoteNotifications Not Updating

iphone - ASIHTTPRequest,请求发送了两次

javascript - YouTube 事件嵌入到 Mobile Safari、iPhone(停止时回调)

ios - .removeFromSuperview 不适用于 UIImageView

ios - 如何仅使用位置经度和纬度从 google place api 获取地点详细信息

iphone - 无法在 iOS 中将字节数组发布到 Web 服务 (REST)