nsoperationqueue

    0热度

    1回答

    我刚刚开始实现一些操作子类',它处理一些异步工作,比如为我下载。我很好奇管理队列的最佳做法,特别是确保我不会两次添加相同的任务。 有没有一种方法可以将操作添加到具有名称的队列中,还是创建和管理字典的一种方法?说,当项目被添加到队列中时,您将条目添加到字典中,当它们完成时,您从字典中删除条目?事先进行条件检查? 由于操作子类中有一个通知块,因此可以非常容易地实现。这似乎有点哈克。 感谢您的咨询。 -

    2热度

    1回答

    我正在使用Realm,我将从不同的操作中获取/设置领域对象的属性,这些操作被添加到一个NSOperationQueue。 假设在操作0中,我将领域对象的属性设置为一个新值,然后将操作1添加到相同的操作队列,操作1获取领域对象的属性,可能会得到旧值,因为线程运行操作1可能不同从操作0。 我该如何解决这个问题?任何建议将不胜感激。

    1热度

    1回答

    在我的基于日历的应用程序中,我遇到了来自应用商店构建的大量崩溃。但是,我无法重现,也没有面对这次开发的崩溃。 崩溃日志从面料: -[EKEventStore(Utils) calendarByRetrievingSafelyWithIdentifier:forEntityType:] Crashed: NSOperationQueue 0x17403fd60 :: NSOperatio

    11热度

    3回答

    当你需要在网络任务或操作,完成块执行主线程上一些东西,这些途径获得这将是最合适的,为什么?: OperationQueue.main.addOperation DispatchQueue.main.async

    0热度

    1回答

    NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:params options:0 error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8Stri

    0热度

    1回答

    有需要异步调用RESTful Web服务得到JSON的内容,然后解析该JSON响应创建一些数据模型实体的常见的场景。这个过程可以被取消/恢复。我不能完全肯定它的最好的办法是:从前者为 实现对网络电话的Operation和另一Operation的JSON解析和设置两种操作之间的相关性输出(JSON后者的数据输入)。然后,将这些操作添加到OperationQueue。 使用URLSession和URL

    1热度

    2回答

    创建并恢复NSURLSessionTask后,为什么NSURLSession操作队列为空? 有没有办法判断NSURLSession是否有待处理的任务? 目标是等待多个任务来完成,但是这并不工作: NSURLSessionUploadTask *uploadTask = [self.session uploadTaskWithStreamedRequest:request]; [uploadTas

    0热度

    1回答

    我想从iOS发送某些数据到在线MySQL数据库。 PHP在服务器上用于处理数据接收和插入。 问题是我有几个数据包。关键是要逐一发送,这意味着我需要一种机制让队列中的第二个数据包等待,直到iOS从服务器收到来自服务器的反馈,确认第一组数据已经存储到数据库中。 我最初尝试创建一个串行调度队列,旨在让iOS应用程序按顺序执行上传工作。虽然iOS方面按照顺序执行了这项工作,但是每个任务只是在发送它的数据包

    1热度

    1回答

    是否有合法的跨队列依赖操作? 考虑以下... let operationA = NSBlockOperation(block: someBlock) let operationB = NSBlockOperation(block: someOtherBlock) let operationC = NSBlockOperation(block: finalBlock) operationC.

    0热度

    1回答

    下载表格,我需要下载一些,我已经使用NSOperationQueue这样 operationQueue = [NSOperationQueue new]; for (int i=0;i<[tempArray count];i++) { CheckList * checklist = (CheckList *)[tempArray objectAtIndex:i];