nsoperationqueue

    0热度

    1回答

    我有opeationqueue我打电话cancelAllOpeations,但如果我问 OpearationQueue.operationcount它没有回到我零。 我重写取消方法一切正常,但opertioncount不是zero.is预计?

    0热度

    1回答

    我正在使用PageViewController,我可能有多个图像作为内容。我从服务中获得以下图像。但是,当网络操作仍在继续时用户单击以关闭视图控制器时,应用程序崩溃。 queue = [[NSOperationQueue alloc] init]; operation = [NSBlockOperation blockOperationWithBlock:^{ [self addA

    3热度

    2回答

    在我的应用程序中,按钮触击从Internet站点下载数据。该网站是包含二进制数据的链接列表。有时,第一个链接可能不包含正确的数据。在这种情况下,应用程序将获取数组中的下一个链接并从中获取数据。链接是正确的。 我遇到的问题是,当我点击按钮时,应用程序频繁(并非总是)会冻结数秒。 5-30秒后,正常解冻并下载工具。我明白,有些东西阻止了主线程。当停止在Xcode的过程中,我得到这个(semaphore

    1热度

    1回答

    我在使用Operation和OperationQueue的Alamofire时遇到问题。 我有一个名为OperationQueue和NetworkingQueue我推一些操作(包装AlamofireRequest)进去,一切工作正常,但在应用程序生活,在某一时刻都Alamofire请求不被发送。我的队列越来越大,没有任何要求结束。 我没有计划随时重现它。 有没有人有帮助我的线索? 下面是代码的示例

    1热度

    1回答

    使用operation.cancel()不会取消当前操作。如果在队列中有一个操作,它似乎取消它,但如果它正在执行,那么它似乎不会阻止它。 我需要发回一些东西回到我的子类操作中的main()函数来让它停下来吗? for operation in downloadQueue.operations { if operation.name == opName { if operati

    4热度

    2回答

    之前完成我有一个操作的子类和操作队列maxConcurrentOperationCount = 1 这将执行我的操作按顺序,我将它们添加这是很好的,但现在我需要等到所有操作完成后再运行另一个进程。 我正在尝试使用通知组,但因为这是在for循环中运行,只要操作已被添加到通知组触发的队列中。如何等待所有操作在运行前离开队列另一个过程? for (index, _) in self.packArray.

    2热度

    1回答

    我在学习NSOperations & NSOperationQueue。 我有一组NSBlockOperation: “上传” & “DELETE”。删除必须等待上传完成后再执行。 我想要发生的是在进行下一组前完成一项操作。 我已经使用NSThread sleepForTimeInterval来模拟上传等待和删除延迟时间。 但是,操作并未等待设置完成。 我将maxConcurrentOperati

    2热度

    1回答

    即时通讯使用NSOperation下载每个单元格的图像,所以我不会超载用户沉重的图像加载。这工作99%的时间,但不时我得到一个零我的操作块和应用程序崩溃。 这是代码: cell.blockImage.image = nil cell.queue.cancelAllOperations() let cacheKey = indexPath.row if(self.i

    0热度

    1回答

    如果在使用NSOperation的同时如果使用GCD,则任务可以被取消,然后一旦将任务分配给队列,我们​​无法取消它,因此我不知道如何将我的后续实现转换为GCD到NSOperation dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) { [self addAl

    0热度

    1回答

    我正在阅读OperationQueue上的文档。 我有这个疑问,我们正在创建的操作BlockOperation和OperationQueue的同步和异步状态是什么。 正如我所理解的那样,它将作为同步操作运行,但如果我们想以异步方式运行它,我们必须使用dispatch.async以异步方式调度它。 我理解它吗?