From 4c7816e716cdfe1f99309fca72000e34c3b72c44 Mon Sep 17 00:00:00 2001 From: Mattt Thompson Date: Tue, 11 Oct 2011 10:20:22 -0500 Subject: [PATCH] Adding conditional NSXMLDocument support for Mac platform --- AFNetworking/AFXMLRequestOperation.h | 17 +++++++++++++++++ AFNetworking/AFXMLRequestOperation.m | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/AFNetworking/AFXMLRequestOperation.h b/AFNetworking/AFXMLRequestOperation.h index 390153e..450c601 100644 --- a/AFNetworking/AFXMLRequestOperation.h +++ b/AFNetworking/AFXMLRequestOperation.h @@ -23,15 +23,32 @@ #import #import "AFHTTPRequestOperation.h" +#import + @interface AFXMLRequestOperation : AFHTTPRequestOperation { @private NSXMLParser *_responseXMLParser; +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED + NSXMLDocument *_responseXMLDocument; +#endif + NSError *_XMLError; } @property (readonly, nonatomic, retain) NSXMLParser *responseXMLParser; +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +@property (readonly, nonatomic, retain) NSXMLDocument *responseXMLDocument; +#endif + + (AFXMLRequestOperation *)XMLParserRequestOperationWithRequest:(NSURLRequest *)urlRequest success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser))success failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; + +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED ++ (AFXMLRequestOperation *)XMLDocumentRequestOperationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLDocument *document))success + failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; +#endif + @end diff --git a/AFNetworking/AFXMLRequestOperation.m b/AFNetworking/AFXMLRequestOperation.m index 9f7b72c..579d9bb 100644 --- a/AFNetworking/AFXMLRequestOperation.m +++ b/AFNetworking/AFXMLRequestOperation.m @@ -26,6 +26,10 @@ @interface AFXMLRequestOperation () @property (readwrite, nonatomic, retain) NSXMLParser *responseXMLParser; +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +@property (readwrite, nonatomic, retain) NSXMLDocument *responseXMLDocument; +#endif +@property (readwrite, nonatomic, retain) NSError *error; + (NSSet *)defaultAcceptableContentTypes; + (NSSet *)defaultAcceptablePathExtensions; @@ -33,6 +37,10 @@ @implementation AFXMLRequestOperation @synthesize responseXMLParser = _responseXMLParser; +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +@synthesize responseXMLDocument = _responseXMLDocument; +#endif +@synthesize error = _XMLError; + (AFXMLRequestOperation *)XMLParserRequestOperationWithRequest:(NSURLRequest *)urlRequest success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser))success @@ -84,6 +92,12 @@ _responseXMLParser.delegate = nil; [_responseXMLParser release]; +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED + [_responseXMLDocument release]; +#endif + + [_XMLError release]; + [super dealloc]; } @@ -95,6 +109,18 @@ return _responseXMLParser; } +#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED +- (NSXMLDocument *)responseXMLDocument { + if (!_responseXMLDocument && [self isFinished]) { + NSError *error = nil; + self.responseXMLDocument = [[[NSXMLDocument alloc] initWithData:self.responseData options:0 error:&error] autorelease]; + self.error = error; + } + + return _responseXMLDocument; +} +#endif + #pragma mark - NSOperation - (void)cancel {