在阅读AFURLRequestSerialization
的源代码后,我发现作者使用AFHTTPRequestSerializerObservedKeyPaths
和NSStringFromSelector
来获取多个密钥,例如allowsCellularAccess
和cachePolicy
,并使用自己作为观察者来观察这些键的值变化:
[self addObserver:self
forKeyPath:keyPath
options:NSKeyValueObservingOptionNew
context:AFHTTPRequestSerializerObserverContext];
为什么他不会覆盖某些setter并使用setter来观察值的变化?
- (void)setAllowsCellularAccess:(BOOL)allowsCellularAccess {
//here do something else
_allowsCellularAccess = allowsCellularAccess;
}
有什么好处吗?