Thanks for the quick response!
Using the mapView layer makes more sense, so I fixed that part. Isn't the UIGraphicsGetImageFromCurrentImageContext() retained in the mapImage?
Here's the adjusted code...
Code:
UIGraphicsBeginImageContext(mapView.frame.size);
[[mapView layer] renderInContext:UIGraphicsGetCurrentContext()]; //also tried mapView.layer
UIImage *mapImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *mapData = UIImagePNGRepresentation(mapImage);
[mapData writeToFile:[self myFilePath:@"MyMap.png"] atomically:YES];
Edit:
Wanted to add that XCode says that renderInContext: method cannot be found.