空drawRect实现导致内存警告

我有一个UIView,我用手指画了一个UIBezierPath。 当我重新缩放视图时(例如在绘制路径之后),会触发重绘function,重新调整BezierPath:

- (void)redrawPathsWithScale:(float)scale { [_path applyTransform:CGAffineTransformMakeScale(scale, scale)]; [self setNeedsDisplay]; } 

setNeedsDisplay导致drawRect被调用。 现在,每当我在x6附近放大到绝对比例时,我立即得到一个内存警告,并且应用程序崩溃了。

我的drawRect方法如下所示:

 - (void)drawRect:(CGRect)rect { [_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0]; } 

奇怪的是:没有实现drawRect会删除内存警告。 实现一个空的drawRect仍会导致崩溃!

添加[super drawRect:rect]; 有什么区别?

drawRect的Apple文档说明:

如果直接子类化UIView,则此方法的实现不需要调用super。 但是,如果要inheritance其他视图类,则应在实现中的某个时刻调用super。

如果你是UIView的子类,你应该没事,但为了以防万一,可能值得检查一下。