【发布时间】:2012-04-22 15:15:29
【问题描述】:
我正在尝试使用 Scintilla 组件 的最新功能,它提供了类似 OSX 的文本突出显示效果(黄色动画弹跳框),但我遇到了一个错误,即间歇性弹出:
EXC_BAD_ACCESS
指向这一特定行:
if (layerFindIndicator!=nil)
if ([layerFindIndicator animationForKey:@"animateFound"])
[layerFindIndicator removeAnimationForKey:@"animateFound"];
(ifs 是我的;以防万一我发现对象 layerFindIndicator 为 nil,或已解除分配或其他...不幸的是,它无济于事...)
layerFindIndicator 似乎是CAGradientLayer 的子类。 (您可能会看到layerFindIndicator、here 的完整代码)。
既然,我是 Quartz Core 的绝对新手,请给我任何关于如何调试它的提示吗?
【问题讨论】:
-
我猜 layerFindIndicator` 已经被
dealloc'ed 了。该 if 语句不会防止未设置为 nil 的已释放对象。例如寻找你在哪里发布它...... -
@Paul.s 你说得很有道理,但我绝对无法发现对象可能被释放的位置......(这不是我的代码,而是一些新添加的片段这使它成为最新的 Scintilla 版本,所以我很迷茫)。我现在正在尝试在此之前创建对象(因为无论如何都应该创建它),并且它似乎正在工作(到目前为止,就是......)
标签: objective-c cocoa exc-bad-access quartz-graphics cagradientlayer