对于目标C中的dispatch_queue_t,我们使用XCTAssertEqual还是XCTAsserEqualObj



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

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

应该警惕使用任何形式的相等来确定您是否在正确的队列中,因为如果没有其他内容,一个队列可以针对另一个队列。在我们的代码中,我们不测试队列的值,而是倾向于使用dispatch_assert_queue(或Swift中的dispatchPrecondition(.onQueue())(。

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

相关内容

  • 没有找到相关文章

最新更新