我想在NSBlockOperations中添加很多mainQueue,并可能调用[mainQueue cancelAllOperations];我的问题是,类方法mainQueue是否仅具有我可以添加的操作,或者系统是否向其添加了任何自己的操作?

最佳答案

好吧,文档没有说任何一种方式,如果来自Apple的任何人都能以绝对的方式告诉您,我会感到非常惊讶。我猜可能没有,但是对您有一个建议,让您可以自己确定。

在当前应用中,发送“-(void)setSuspended:YES;”到mainQueue中,然后将dispatch_after块添加到dispatch_main_queue中,并记录mainQueue的operationCount。实际上,您可以在启动时将其暂停在appDelegate中,并提供一个打印计数的按钮,以便您可以真正锻炼自己的应用程序。如果有任何UIKit框架使用它,我会感到非常惊讶。

我只是尝试过我的iOS应用程序,却从未发现任何东西:

// in one place
[((NSOperationQueue *)[NSOperationQueue mainQueue]) setSuspended:YES];
// Eons later
NSLog(@"[NSOperationQueue mainQueue] %d", ((NSOperationQueue *)[NSOperationQueue mainQueue]).operationCount);

该值为0;

关于iphone - 系统是否使用NSOperationQueue mainQueue进行自己的调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11507658/

10-10 20:50