我有一个UIView子类,它在调用-drawRect:
时自己绘制。它只需要一些时间,但是在极端情况下,例如在去往另一个视图控制器时实例的内存不足和删除,绘制函数在对象被释放之前没有完成。当代码仍在运行时释放对象时,是否有避免错误的方法?
我该如何处理这个问题?解除分配导致任何对[self ...]的调用都会抛出一个EXC_BAD_ACCESS,绘图函数将确定如何绘制自己。
注:
我主要使用的框架来处理内存管理。问题在于UIView使用的来自CATiledLayer的-drawRect:
的异步调用,它在UIView发布之前提供。但是,由于它是异步的,-didReceiveMemoryWarning
在绘图时运行,导致视图在绘图中间释放。
注:我已经包裹在一个通用的try-catch块(NSException *),但EXC_BAD_ACCESS,显然也不例外。 – 2009-02-10 18:55:12