jjzjj

NSOperation

全部标签

iOS - NSOperation 中的异步 NSURLConnection

我知道这个问题在SO上被问过很多次,但我没有设法让它在我的项目中工作......所以,我想子类化NSOperation并让它使用NSURLConnection下载文件。正确的做法是什么?这是我的代码不起作用:首先,我将所有操作添加到一个循环中:DownloadFileOperation*operation;NSOperationQueue*queue=[[NSOperationQueuealloc]init];for(inti=0;i这是我的子类:@interfaceDownloadHandbookOperation:NSOperation{}@property(strong,nona

ios - 核心数据/NSOperation : crash while enumerating through and deleting objects

我有一个基于核心数据的应用程序,它具有一个对象(列表)到多个对象(列表项)的关系。我正在努力在设备之间同步数据,作为其中的一部分,我在后台线程中从XML文件导入列表(通过NSOperation子类)。当我更新现有列表时,我删除了它所有的旧列表项(从特定于该线程的NSManagedObjectContext中)并用XML文件中的新列表项替换它们...删除是通过枚举处理的该列表的项目:for(ListItemCD*iteminlistToUpdate.listItems){[self.importContextdeleteObject:item];}但是,偶尔,我会在枚举期间崩溃:*由于未

ios - NSOperation 在队列结束时释放

我有很多UIImage批处理操作。我将它们添加到NSOperationQueue的实例中:self.operationQueue.addOperations(operations,waitUntilFinished:false)但是似乎operationQueue会捕获所有操作并在所有操作完成后释放它们。我的操作实例继承自这个class如何释放刚刚完成的操作?我错过了什么吗? 最佳答案 addOperations(operations,waitUntilFinish:false)不会隐式保留所有操作直到完成,它本质上与foroper

ios - 在主线程上同步启动 NSOperation 时出现奇怪的间歇性崩溃

我这里有一个系统,它以缝合在一起的位呈现自己。有时这些位在后台线程中呈现,但有时当反馈延迟非常重要时,这些位在主线程上同步呈现。这段代码在主线程中调用,方法名为createPatchView,patchView.createRenderingOperation()返回NSOperation的子类做渲染。异步版本工作正常,操作队列选择作业并在后台处理它。但是我们要立即渲染它的另一个分支给我间歇性崩溃。//Figureoutwhentorenderitifasync{//Addthepatchrenderingjobtothetilerenderingqueue.tiledView.ren

ios - 当 NSOperationQueue 中的所有其他操作完成时执行 NSOperation,无论它们是否成功完成

嗨,我这里有一个奇怪的情况:概览:我正在开发一个用户可以启动多个操作的应用程序,所有这些操作都将在后台线程上运行,因此不会阻塞UI。这些操作中有些是相互依赖的,有些则不是。因此,为了确保操作仅在所有必要的依赖操作完成执行后才执行,我使用操作的依赖属性。我正在使用异步操作。这是我的实现:importUIKitimportCoreDataimportSwiftyJSONclassVMBaseOperation:NSOperation{varfinishedStatus:Bool=falsevarexecutionStatus:Bool=falsevarretryCount:Int=0pri

swift - 为什么我的 NSOperation 没有取消?

我有这段代码可以将NSOperation实例添加到队列中letoperation=NSBlockOperation()operation.addExecutionBlock({self.asyncMethod(){(result,error)inifoperation.cancelled{return}//etc}})operationQueue.addOperation(operation)当用户离开触发上述代码的View时,我取消正在执行的操作operationQueue.cancelAllOperations()测试取消时,我100%确定取消在异步方法返回之前执行,因此我希望op

ios - Swift 中的内存管理 : memory don't released after NSOperation ends

有人可以澄清一件事关于Swift的内存管理吗?我有以下应用委托(delegate):@NSApplicationMainclassAppDelegate:NSObject,NSApplicationDelegate{privatelet_queue=NSOperationQueue()funcapplicationDidFinishLaunching(aNotification:NSNotification){_queue.maxConcurrentOperationCount=1_queue.addOperation(Operation())_queue.addOperation(O

ios - 如何取消 NSOperation 的依赖?

我在依赖图中有一些NSOperation:NSOperation*op1=...;NSOperation*op2=...;[op2addDependency:op1];这是我运行它们的方式:NSOperationQueue*queue=[[NSOperationQueuealloc]init];[queueaddOperation:op1];[queueaddOperation:op2];现在我需要取消它们。如何确保依赖图中的所有NSOperation都被取消,并且没有其他NSOperation被取消?我尝试过的:在任一NSOperation上调用cancel不会取消另一个(据我所知)

ios - 管理一堆具有依赖关系的 NSOperation

我正在开发一个创建内容并将其发送到现有后端的应用程序。内容是标题、图片和位置。没什么特别的。后端有点复杂,所以这是我必须做的:让用户拍照、输入标题并授权map使用其位置为帖子生成唯一标识符在后端创建帖子上传图片刷新用户界面我使用了几个NSOperation子类来完成这项工作,但我对我的代码并不感到自豪,这里有一个示例。NSOperation*process=[NSBlockOperationblockOperationWithBlock:^{//Processimagebeforeupload}];NSOperation*filename=[[NSInvocationOperation

ios - 如何暂停 NSOperationQueue 中的 NSOperation?

我需要暂停插入到NSOperationQueue中的正在运行的NSOperation。目前我正在取消所有操作并重新启动它们。但这会导致在已完成的流程方面出现某种重复。我尝试使用NSOperationQueue的setSuspended标志。但它并没有暂停操作。有什么出路吗? 最佳答案 看到这个:Link这里来自appledocs:SuspendingandResumingQueuesIfyouwanttoissueatemporaryhalttotheexecutionofoperations,youcansuspendthecor