3

我想添加很多NSBlockOperationsmainQueue并可能调用[mainQueue cancelAllOperations];我的问题是,类方法mainQueue是否只有我可以添加到它的操作,或者系统是否添加了它自己的任何操作?

4

1 回答 1

2

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

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

我只是尝试了一个我的 iOS 应用程序,但从未找到任何应​​用程序:

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

值为0;

于 2012-07-16T16:00:34.197 回答