2018-08-15 优雅的初始化dispatch_queue_

2018-08-15  本文已影响16人  小马飞驰bnb

习惯性的爱使用全局变量定义dispatch_queue_t类型,并在+ (void)load;方法中做初始化。
在AFNetworking中看到了更优雅的做法。代码如下:

static dispatch_queue_t url_session_manager_processing_queue() {
    static dispatch_queue_t af_url_session_manager_processing_queue;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        af_url_session_manager_processing_queue = dispatch_queue_create("com.alamofire.networking.session.manager.processing", DISPATCH_QUEUE_CONCURRENT);
    });

    return af_url_session_manager_processing_queue;
}
上一篇 下一篇

猜你喜欢

热点阅读