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
。
我知道 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
。