Я вполне уверен, что вам нужно использовать CoreGraphics для любого вида рисования в переопределении drawMapRect. Приведенный ниже код не был скомпилирован, поэтому я не могу гарантировать, что он будет работать «из коробки», но что-то в этом роде, вероятно, сработает.
-(void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context{
// The base implementation does nothing so this isn't needed
//[super drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context];
NSString * t= @"Test" ;
CGPoint point = [self pointForMapPoint:mapRect.origin];
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSelectFont (context, "Helvetica", 20.0f, kCGEncodingFontSpecific);
CGContextShowTextAtPoint(context, point.x, point.y, [t UTF8String], [t length]);
}