If you want to simplify your code, you can use a simple NSURLConnection wrapper such as STHTTPRequest.
STHTTPRequest *r = [STHTTPRequest requestWithURLString:@"http://pictaculous.com/api/1.0/"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpg"];
NSData *data = [NSData dataWithContentsOfFile:path];
[r addDataToUpload:data parameterName:@"image"];
r.completionBlock = ^(NSDictionary *headers, NSString *body) {
NSLog(@"-- %@", body);
};
r.errorBlock = ^(NSError *error) {
NSLog(@"-- error: %@", error);
};
[r startAsynchronous];