我正在使用NSOperationQueue
为我的应用获取一些数据:
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
GetSUPDataOperation *operation = [[GetDataOperation alloc] init];
operation.context = self;
[queue addOperation:operation];
[operation release];
我想阻止用户导航到应用的某些部分,直到我们完成获取所需的所有数据为止。
我有什么方法可以观察操作完成并设置一个标志吗?
答案 0 :(得分:0)
您可以为操作设置委托
@interface YourOperation : NSOperation {
id target;
SEL selector;
}
- (id)initWithTarget:(id)theTarget action:(SEL)action;
@end
在操作结束时(即在主要功能内),使用
- (void)main {
Your code here...
...
[target performSelectorOnMainThread:selector withObject:nil waitUntilDone:NO];
}
要求你的代表设置一个标志
答案 1 :(得分:0)
从架构的角度来看,您不希望“监视”其运行状态的操作。您希望在操作完成运行时调用方法。
因此,只需在操作完成时调用一个更新UI(或应用程序的其他部分)的方法。