Static Class in Objective-C for HTTP Communication
===

I'm trying to put together a static class for my iOS app that will encapsulate my HTTP communication logic. I know how to make static methods in Objective-C via the `+` sign, but I want to have my class be able to accept a block and invoke it when it's tasks are complete. The class I've got so far compiles fine, but when I invoke it's functions it only get's to a certain point and fails. Here's my current code:

    #import <UIKit/UIKit.h>
    
    #pragma mark - Globals
    #import "Globals.h"
    
    @interface HTTPRequest : NSObject <NSURLConnectionDelegate>
    + (void)GET:(NSMutableURLRequest *)request completionBlock:(void (^)(void))block;
    + (void)POST:(NSMutableURLRequest *)request andBody:(NSString *)requestString completionBlock:(void (^)(void))block;
    @end

    #import "HTTPRequest.h"
    
    @interface HTTPRequest () {
    	NSInteger statusCode;
    }
    @end
    
    static void (^completionBlock)(void);
    
    @implementation HTTPRequest
    + (void)GET:(NSMutableURLRequest *)request completionBlock:(void (^)(void))block {
    	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    	
    	[request setHTTPMethod:@"GET"];
    	
    	NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
    																  delegate:self];
    	
    	if (connection) {
    		responseData = [[NSMutableData alloc] init];
    	} else {
    		NSLog(@"NSURLConnection INSTANCE FAILED");
    	};
    	
    	completionBlock = block;
    }
    
    + (void)POST:(NSMutableURLRequest *)request andBody:(NSString *)requestString completionBlock:(void (^)(void))block {
    	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    	
    	NSData *requestData = [NSData dataWithBytes:[requestString UTF8String]
    										 length:[requestString length]];
    	
    	[request setHTTPMethod:@"POST"];
    	[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    	[request setHTTPBody:requestData];
    	
    	NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
    																  delegate:self];
    	
    	if (connection) {
    		responseData = [[NSMutableData alloc] init];
    	} else {
    		NSLog(@"NSURLConnection INSTANCE FAILED");
    	};
    	
    	completionBlock = block;
    }
    
    #pragma mark - NSURLConnectionDelegate Methods
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    	[responseData setLength:0];
    	
    	statusCode = [((NSHTTPURLResponse *)response) statusCode];
    }
    
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    	[responseData appendData:data];
    }
    
    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    	NSLog(@"CONNECTION ERROR: %@ %@", [error localizedDescription], [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
    }
    
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    	NSLog(@"RESPONSE STRING: %@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
    	
    	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
    	
    	if (statusCode == 200) {
    		completionBlock();
    	} else {
    		NSLog(@"RESPONSE ERROR: %i", statusCode);
    	};
    }
    @end

I know that GET and POST functions get called and that they create the `NSURLConnection` object. Thereafter, none of the `NSURLConnectionDelegate` functions get called.

Can anyone spot the issue, or alternatively, if I'm going about this completely wrong, please let me know. Thanks in advance!