Objective C 中的 dispatch_queue_t 是否使用 XCTAssertEqual 或 XCTAssertEqualObject?

Do we use XCTAssertEqual or XCTAssertEqualObject for dispatch_queue_t in Objective C?

我知道 dispatch_queue_t 是一个 c 结构,而不是 NSObject。那么我们应该使用XCTAssertEqual还是XCTAssertEqualObject呢?当我们有 2 个不同的指针指向同一个队列时是否可能?

A dispatch_queue_t 不是结构。是一个NSObject<OS_dispatch_queue>。 (有一个环境变量可以用来控制它是否是一个对象,但现在它几乎总是一个对象。)

人们应该警惕使用任何形式的平等来确定您是否在正确的队列中,因为如果不出意外,一个队列可以针对另一个队列。在我们的代码中,我们不测试队列的值,而是倾向于使用 dispatch_assert_queue (or dispatchPrecondition(.onQueue()) in Swift).

如果这是您自己的自定义队列,另一种选择是 dispatch_queue_set_specific and then dispatch_queue_get_specific