我需要将线程上下文特定数据存储在使用 NSPrivateQueueConcurrencyType 线程执行的块中。这是我想在块中执行的示例(给出了我将存储的上下文数据的简化示例,但您明白了):
dispatch_queue_t myQueue = dispatch_get_current_queue(); NSMutableDictionary *myContext = @{@"Context": @"ContextData"}; dispatch_set_context(myQueue, (__bridge_retained void *)myContext);
但问题是用于获取对当前队列的引用的函数 dispatch_get_current_queue() 已被弃用,所以我不想使用它。我看不到任何其他机制来检索对此队列的引用,因此我可以针对它保存上下文数据。我现在想知道 Apple 是否已弃用 dispatch_get_current_queue() ,因为他们不希望人们做我想做的事情——尽管我看不到任何关于此的文档警告。1. 你知道这是一件坏事的任何原因吗?2. 如果线程恰好是系统提供的 CoreDataPrivateQueue 类型,您是否知道保存与当前线程相关的上下文数据的任何其他方法,其中使用的代码也应该能够工作?