草庐IT

NsoperationQueue

全部标签

ios - NSOperationQueue 如何等待两个异步操作?

如何让NSOperationQueue(或其他任何东西)等待两个带有回调的异步网络调用?流程需要看起来像这样BlockBegins{Networkcallwithcallback/blockbegins{firstnetworkcallisdone}}SecondBlockBegins{Networkcallwithcallback/blockbegins{secondnetworkcallisdone}}OnlyrunthisblockoncetheNETWORKCALLSaredone{blah}这是我目前所拥有的。NSOperationQueue*queue=[[NSOperat

ios - NSOperationQueue 是否在运行时自动保留?

这可能是一个简单的问题,但我进行了几次快速搜索,但找不到答案。我是否必须保留NSOperationQueue(通过使用属性等)以避免在方法完成执行后释放它。例如:-(void)doOperation:(NSOperation*)someOperation{NSOperationQueue*queue=[[NSOperationQueuealloc]init][queueaddOperation:someOperation];}我知道操作在执行时会被队列保留,但是队列会被arc释放吗,因为它没有在此方法范围之外的显式引用? 最佳答案

ios - NSOperation & NSOperationQueue 取消

我遇到了一些自定义的奇怪问题NSOperation在NSOperationQueue中排队的实例实例:当我调用[myOperationcancel]或[myOperationQueuecancelAllOperations]isCancelledcancel的setter/getter我的自定义bool值保持不变NSOperation子类实例。当应用委托(delegate)applicationWillResignActive时,我正在尝试取消操作方法被调用。我对NSOperation的实现子类是这样的:自定义初始化方法主要实现我有一个单例,它强烈引用了我的NSOperation的实例

ios - 从 NSOperationQueue 获取特定的 NSOperation

你好,在我的应用程序中,我创建了NSOperations并将它们添加到NSOperationQueue。有时,我想从我的操作队列中取消一些特定的操作,这就是为什么我为我的NSOperation子类定义了一个标识符属性:@property(nonatomic,assign)NSString*identifier;但是当我循环进入我的队列的操作并且我想将我的操作的标识符与我想要获取的操作的标识符进行比较时,我得到一个EXC_BAD_ACCESS指出if条件:for(MyCustomNSOperationClass*operationinself.myOperationQueue.opera

ios - 取消请求时 NSOperation 何时从 NSOperationQueue 中删除?

我正在阅读一些文档,解释如何在NSOperationQueue中管理NSOperation。我的重点是,如果用户在进度面板中按下取消按钮或退出应用程序,则始终完全不执行该操作。因此,取消操作以防止它不必要地消耗CPU时间。所以,每当我需要取消操作时,我应该触发cancel方法以防止进一步执行。然后我将不得不定期使用操作对象状态isCancelled来检查操作是否被取消。以下是我对此的问题:(1)在取消请求时,如果NSOperation从NSOperationQueue中删除,那么我们如何仍然引用该NSOperation及其属性isCancelled?根据AppleDeveloperCl

ios - NSOperationQueue 和后台支持

我在制定一个有用的策略来支持NSOperationQueue类的背景时遇到了一些问题。特别是,我有一堆执行以下操作的NSOperation:从网上下载一个文件解析文件导入核心数据中的数据文件操作被插入到串行队列中。一旦一个操作完成,下一个就可以开始。我需要在应用程序进入后台时停止(或继续)操作。从这些讨论(DoesAFNetworkinghavebackgroundingsupport?和QueueofNSOperationsandhandlingapplicationexit)中,我看到最好的方法是取消操作并在每个操作中使用isCancelled属性。然后,根据该属性检查操作的关键点

ios - NSBlockOperation、NSOperationQueue 和 block

我必须从我的RestAPI同步一堆信息。我必须进行6次RestAPI调用才能完成工作。我用Blocks设计了​​API调用,如果有则返回NSError。其中3个调用应该嵌套执行,因为第一个调用向其他调用提供信息并允许执行,而其他3个调用可以独立运行。为了提高网络性能,我将我的同步调用设计如下:1个包含前3个嵌套block的NSBlockOperation;1个包含其他三个block的NSBlockOperation;1个NSBlockOperation,我用作“信号量”并在所有工作完成时告诉我。最后一个NSBlockOperation依赖于前两个NSBlockOperation。我还有

ios - NSOperationQueue 中的 NSOperation 未被执行

我真的需要帮助。在这一点上我很绝望。我有NSOperation,当添加到NSOperationQueue时不会被触发。我添加了一些日志记录以查看NSOperation状态,结果如下:Queueoperationscount=1QueueisSuspended=0OperationisCancelled?=0OperationisConcurrent?=0OperationisFinished?=0OperationisExecuted?=0OperationisReady?=1Operationdependencies?=0代码非常简单。没什么特别的。LoadingConflictEv

ios - 在 XCTests 中使用 [NSOperationQueue mainQueue]

我正在使用XCTest测试我的一部分代码,它还在主队列上添加了NSOperations。它看起来像这样:[NSOperationQueuemainQueue]addOperationAsBlock:^{//一些代码发生在这里}];代码在设备或模拟器中运行应用程序时运行,但在运行单元测试时根本不运行(我无法到达block第一行的调试点)。调用:[NSOperationQueuemainQueue]waitUntilAllOperationsAreFinished];也没有帮助。有什么建议吗?我想我缺少一些初始化队列的代码。*编辑*感谢您的回答,为了完整性,我添加了结果代码://addas

ios - 对于从 NSOperationQueue 运行的 NSOperation,isConcurrent 意味着什么?

因为NSOperationQueue总是在新线程上运行任务,当NSOperation从NSOperationQueue运行时,我对isConcurrent的作用感到困惑。如果我有两个NSOperation的子类,都运行一个异步进程,都从NSOperationQueue启动,并且我都覆盖了isCancelled,isExecuting、isFinished和isReady。如果一个我重写isConcurrent总是返回YES而另一个总是returnNO会有什么区别。实际上是谁调用了isConcurrent?如果是NO或YES,逻辑如何变化。 最佳答案