在NSOperationQueue中命名线程

Nic*_*ing 5 objective-c nsoperation nsthread nsoperationqueue

NSOperationQueue创建了许多线程,正如您所期望的那样.但是当您暂停应用程序并在Xcode中调试它时,不清楚哪些线程属于一个操作队列,哪些线程属于另一个操作队列.

我试过了:

[NSThread currentThread] setName: @"My amazing operation thread"]
Run Code Online (Sandbox Code Playgroud)

但是当线程被重用时,这只意味着许多线程获得此名称,然后永远不会丢失它.我试过设置在线程名称-start和它解封-finish,但该线程的名字在Xcode调试线程列表从未露面.

命名线程/操作以使它们在Xcode中更容易调试的好方法是什么?

Jea*_*ean 4

要命名您的 NSOperationQueue,您可以使用:

- (void)setName:(NSString *)newName
Run Code Online (Sandbox Code Playgroud)

调试时,线程名称在线程下方显示为浅灰色。

示例:( 线程 3 是我的)

在此输入图像描述

来自苹果的文档

讨论

名称为您提供了一种在运行时识别操作队列的方法。工具还可以使用此名称在代码调试或分析期间提供额外的上下文。

Xcode 是使用此信息在调试期间提供附加上下文的“工具”之一。