【发布时间】:2010-05-11 23:11:12
【问题描述】:
我扩展了 NSOperation(称为 A),其中包含其他 NSOperation 的 NSOperationQueue(这是与 A 不同的另一个扩展类,将这些操作称为 B)。当操作 A 正在运行(执行 B 操作)时,当 B 操作上发生某些事件时,我如何在操作 A 上调用特定函数/方法?例如,完成它的每个操作 B 都会在操作 A 返回自身时调用一个函数?
*嵌套的 NSOperation 和 NSOperationQueue(s)
希望这个mockup伪代码可以帮助绘制图片。
//My classes extended from NSOperation
NSOperation ClassA
NSOperation ClassB
//MainApp
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification {
ClassA A1;
ClassA A2;
NSOperationQueue Queue;
Queue AddOperation: A1;
Queue AddOperation: A2;
}
//Main of ClassA
-(void)main {
ClassB B1;
ClassB B2;
NSOperationQueue Queue;
Queue AddOperation: B1;
Queue AddOperation: B2;
}
//Main of ClassB
-(void)main {
//Do some work and when done call selector on ClassA above
}
【问题讨论】:
-
听起来既复杂又可怕。你想做什么?
-
一些伪代码可能会使问题更清楚。
-
@Dave DeLong:这是一个编码实验。该应用程序需要一些指向服务器上下载文件的 URL。为每个 URL 创建 NSOperation,确定文件的大小并将其分成块。从那里,文件的每个块都由单独的 NSOperation 下载。这有意义吗。
-
我称之为嵌套的NSOperations,我也有同样的问题。
标签: objective-c cocoa nsoperation