问题标签 [nsoperationqueue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

core-graphics - NSOperation 中来自 CoreGraphics API 的 EXC BAD ACCESS

我正在尝试使用 MacRuby 在 NSOperation 中进行一些 CoreGraphics/CoreImage 操作。我有一些 API 调用将源文件读入 CG 并设置 CGImageDestination。

如果我将以下代码放入 NSOperation.init 中,一切正常:

但是,如果我将相同的代码放入 NSOperation 的主函数中,则会出现零星的 EXC_BAD_ACCESS 错误。并且仅在将 NSOperation 传递给 NSOperationQueue 时;如果我自己调用 main ,它工作得很好。

在我运行的主要部分结束时:

更奇怪的是它在 init 中工作,即使 init 不是从主线程调用的(所以不是主线程/后台线程问题,我猜)

有什么想法吗?

0 投票
2 回答
918 浏览

ios - NSOperationQueue 和并发操作

正如NSOperationQueueClass Reference 所说:在 iOS 中,操作队列不Grand Central Dispatch用于执行操作。它们为非并发操作创建单独的线程,并从当前线程启动并发操作。

但我发现在 iOS 4.2.1 中,队列总是为并发或非并发操作创建线程。而且我认为队列根本不关心并发或非并发,因为 isConcurrent 中的断点永远不会被打破。所以我认为参考是错误的......

0 投票
1 回答
2442 浏览

iphone - 正确地释放 NSOperationQueue

我想知道解除分配 ivar NSOperationQueue 的正确方法是什么,以防它仍有一些正在运行的操作,这通常发生在用户突然退出应用程序时。在一些示例中,我看到使用了 waitUntilAllOperationsAreFinished,如下所示:

p>

但是许多人建议避免这样做,因为它会挂起运行循环。那么释放的正确方法是_queue什么?如果我不等待操作完成而继续发布会发生什么?

0 投票
1 回答
518 浏览

objective-c - 释放 NSInvocationOperation 导致应用程序崩溃

嗨,我有以下代码

当我取消注释 [操作发布] 我的应用程序崩溃。我得到这个错误:

malloc:* 对象 0x726ed50 的错误:未分配被释放的指针 *在 malloc_error_break 中设置断点以进行调试

我认为 NSOperationQueue 负责保留对象。有什么我做错或不知道的事情吗?

0 投票
2 回答
486 浏览

iphone - iphone - 将数据发送到服务器并使用 NSOperationQueue

在我的应用程序中,我必须向服务器发送大量报告。所以我创建了一个继承自 NSOperation 的类 SendReport。

现在我在我的视图控制器类中创建 NSOperationQueue 然后创建多个对象并将它们添加到队列中。

现在在 SendReport 中,在“main”中,我想创建 NSMutableURLRequest 和 NSURLConnection 并启动向服务器发送数据......我还想实现 NSURLConnection 到观察者数据传输的委托以及完成时......

有人可以指导我如何实现将数据传输到服务器并实现委托的“SendReport”类吗?

0 投票
1 回答
862 浏览

iphone - 取消 ASINetworkQueue 中的一个(或多个)特定 ASIHTTPRequest

在我的 iPhone/iPad 应用程序中,我通过“APIManager”(单例,在 AppDelegate 中创建)处理所有网络和 web-API 请求。

目前 APIManager 只包含一个 ASINetworkQueue,APIRequests(ASIHTTPRequest 的子类)被添加和执行。在每个 APIRequest 的 userInfo 中添加了一些额外的信息来处理请求(比如是否应该将响应解析为 Core Data - 如果是,哪个实体 - 或不)。

当用户从一个视图 (ViewA) 移动到另一个视图 (ViewX) 时,我希望能够取消 ViewA 要求 APIManager 执行的所有请求,同时让其他人继续。

是否有一些功能可以在 ASINetworkQueue(或 NSOperationQueue)中查找某个请求并向其发送取消消息?也许使用添加到请求的用户信息中的参数?

提前致谢!

0 投票
2 回答
400 浏览

iphone - EXC_BAD_ACCESS 同时使用 2 个 NSOperations 向数组添加数据

我有:

1)同时启动 2 个异步 NSUrlRequests

2) 一旦两个请求之一加载了 XML 数据,就使用 NSOperationQueue 来启动 XML 解析器。因此,ParseOperations 的工作方式与 Apple 的 LazyTableImages 示例一样。

InfoRequestHelper.m

3) 当解析完成 parser:didFinishParsing: 触发。

InfoRequestHelper.m

问题:当第一个事件到达这里时,可以将对象添加到数组中。但是当第二个到达时,有一个 EXC_BAD_ACCESS。

0 投票
1 回答
503 浏览

iphone - NSOperation 存在于 NSOperationQueue

有谁知道一种方法来判断 NSOperation 是否已经在 NSOperationQueue 上,而不必实际获取操作列表并与每个项目进行比较?

提前致谢,

0 投票
2 回答
6966 浏览

iphone - 如何取消使用 addOperationWithBlock 创建的操作?

我正在使用 NSOperationQueue 的 addOperationWithBlock。从块内,我如何检查我是否应该取消操作?或者访问任何 NSOperation 属性/方法?

更好的方法是使用 NSBlockOperation 吗?

0 投票
2 回答
680 浏览

objective-c - NSInvocationOperation 问题

我在我的 Cocoa Mac 应用程序中有一个方法,它遍历我的应用程序的 PubSub 客户端中的所有订阅提要,并将所有条目标记为已读。

逻辑看起来像这样......

如果有大量未读提要,则可能需要一段时间才能循环浏览所有提要(相对而言)。我希望用户能够在后台进行其他操作时执行其他操作,例如滚动浏览文章。所以我有一个 NSInvocationOperation 设置来调用该方法,就像这样......

循环运行时,应用程序仍然会严重减速。用户界面几乎没有响应。我是否缺少 NSInvocationOperation 的某些内容,或者我的逻辑本身就很慢?