最近看 AFNetworking 代码,有个地方有点儿疑惑,希望各位大大帮我分析一下。
-
建立单例,在一次性运行代码运行之前加上这句
static NSArray *_AFHTTPRequestSerializerObservedKeyPaths = nil;尤其是=nil,那么在单例建成后每次调用不都会将它置为 nil 吗? -
变量声明这边
NSArray *_xxx这种声明方式是否有什么特别之处? 本人菜鸟,谢谢大大们赐教啊。static NSArray * AFHTTPRequestSerializerObservedKeyPaths() { //1.在单例建成后每次调用不都会将它置为 nil 吗? //2.NSArray *_xxx声明方式有什么特别之处? static NSArray *_AFHTTPRequestSerializerObservedKeyPaths = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _AFHTTPRequestSerializerObservedKeyPaths =@[NSStringFromSelector(@selector(allowsCellularAccess)),NSStringFromSelector(@selector(cachePolicy)),NSStringFromSelector(@selector(HTTPShouldHandleCookies)),NSStringFromSelector(@selector(HTTPShouldUsePipelining)), NSStringFromSelector(@selector(networkServiceType)), NSStringFromSelector(@selector(timeoutInterval))]; }); return _AFHTTPRequestSerializerObservedKeyPaths; }