我对如何在 dispatch_async 中使用 NSDateFormatter 感到有点困惑。我已经读到它不是线程安全的,但这是否意味着我每次在 dispatch_async 中使用它时都必须创建它的新实例,或者我可以将它用作静态代码,如下面的代码所示?由于它是一个串行队列,我猜它不能同时从多个地方访问?
dispatch_async(video_sync_request_operation_processing_queue(), ^{
static NSDateFormatter *dateFormatter = nil;
if (!dateFormatter) {
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
}
...
});