【发布时间】:2009-02-10 18:40:01
【问题描述】:
我有一个 UIView 子类,它会在调用 -drawRect: 时自行绘制。只需要一点时间,但在极端情况下,例如内存不足和去另一个视图控制器时删除实例,在对象被释放之前绘制函数不会完成。
我应该如何处理这个问题?释放会导致对 [self ...] 的任何调用抛出 EXC_BAD_ACCESS,绘图函数会执行此操作来确定如何绘制自身。
注意:
我主要使用框架来处理内存管理。问题在于 UIView 使用的 CATiledLayer 对 -drawRect: 的异步调用,这些调用在 UIView 发布之前进入。但是,由于它是异步的,-didReceiveMemoryWarning 在绘制的同时运行,导致视图在绘制中间被释放。
【问题讨论】:
-
注意:我已经将它包装在一个通用的 try-catch 块中(NSException *),但 EXC_BAD_ACCESS 显然不是一个例外。
标签: cocoa-touch memory-management