【发布时间】:2011-08-08 20:43:50
【问题描述】:
所以,我有一组 ASINetworkQueue,它们当前一起运行,导致数据库保存时出现争用情况。我正在尝试创建一个 NSOperationQueue ,它将对这些“子队列”中的每一个进行排队。我目前已经创建了一个带有 main 方法的 NSOperation,该方法启动“子队列”以开始下载。
我的问题是,每次我使用“addOperation”将子队列添加到主队列时,它都会立即触发“main”方法,因此我的子队列同时运行。我的印象是主要方法一次被解雇。即仅用于队列顶部的操作。
也许我在这里遗漏了一些东西,但我似乎无法弄清楚如何在第一个操作完成之前停止其他操作。此外,我什至无法让我的程序进入导致 NSOperation 的 isReady = 0 的情况。这总是返回是。
这里有一些代码:
注意:我已将 NSOperation 队列 maxConcurrentOperations 设置为 1。
NSOperation 主要方法:
-(void)main {
[subQueue download];
}
设置队列:
ChapterDownloadOperation *cdo = [[ChapterDownloadOperation alloc] init];
cdo.chapter = ch;
[chapterDownloadQueue addOperation:cdo];
[cdo release];
如果我添加多个操作,main 方法会在它添加到队列中的实例处触发。当该操作准备好时,是否还有另一个我应该覆盖和使用的功能。我感觉主要方法是设置操作。
非常感谢任何想法。
非常感谢。
【问题讨论】:
标签: objective-c ios nsoperation nsoperationqueue