diff --git a/AFNetworking/AFHTTPRequestOperation.m b/AFNetworking/AFHTTPRequestOperation.m index 324652b..84f2bad 100644 --- a/AFNetworking/AFHTTPRequestOperation.m +++ b/AFNetworking/AFHTTPRequestOperation.m @@ -108,10 +108,10 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL #pragma mark - @interface AFHTTPRequestOperation () -@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; @property (readwrite, nonatomic, strong) NSURLRequest *request; @property (readwrite, nonatomic, strong) NSHTTPURLResponse *response; -@property (readwrite, strong) NSError *HTTPError; +@property (readwrite, nonatomic, strong) NSError *HTTPError; +@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; @end @implementation AFHTTPRequestOperation @@ -122,24 +122,6 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL @dynamic request; @dynamic response; -- (NSError *)HTTPError -{ - [self.lock lock]; - NSError *HTTPError = _HTTPError; - [self.lock unlock]; - - return HTTPError; -} - -- (void)setHTTPError:(NSError *)HTTPError -{ - [self.lock lock]; - if (HTTPError != _HTTPError) { - _HTTPError = HTTPError; - } - [self.lock unlock]; -} - - (void)dealloc { if (_successCallbackQueue) { #if !OS_OBJECT_USE_OBJC @@ -157,6 +139,7 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL } - (NSError *)error { + [self.lock lock]; if (!self.HTTPError && self.response) { if (![self hasAcceptableStatusCode] || ![self hasAcceptableContentType]) { NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; @@ -178,6 +161,7 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL } } } + [self.lock unlock]; if (self.HTTPError) { return self.HTTPError;