It won't create a retain cycle, your instance doesn't hold a strong reference to the completion block. However I would prefer not calling the super
implementation like this, maybe something like this
-(void)cancelAfterRequest
{
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
[self cancel];
}];
}