iphone - 如何删除所有 performSelector :withObject:afterDelay:?

标签 iphone objective-c exc-bad-access

我在释放一个对象时遇到了 EXC_BAD_ACCESS,该对象具有很少的 performSelector:withObject:afterDelay,其中选择器方法正在调用另一个对象,而我正在释放该对象。

我在类里面的某个地方打电话:

[self performSelector:@selector(callObject1Function) withObject:nil afterDelay:2.0];

在我的课上我有:

- (void)callObject1Function{
    [object1 function1]  // Here I am getting "EXC_BAD_ACCESS"
}

- (void)dealloc {
    [object1 release];
    [super dealloc];
}

我只是不明白,我认为当您dealloc 对象时,与该对象关联的所有内容都应该被删除或取消,甚至 performSelector 也会延迟!

最佳答案

使用 NSObject 的:

-cancelPreviousPerformRequestsWithTarget:selector:object: 

取消任何挂起的执行选择器。

关于iphone - 如何删除所有 performSelector :withObject:afterDelay:?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106906/

相关文章:

iphone - 具有方向或箭头主题的 UISegmentedControl

iphone - 具有先前 View 的主/详细项目

objective-c - 转到另一个函数中的标签

objective-c - 如何从 NSDate 获取没有时间的日期?

ios - OCMArg checkWithBlock 因 EXC_BAD_ACCESS 崩溃

iphone - NSPredicate 嵌套关系

iphone - iOS UI Bezier 动画曲线,如何创建某种弧线?

ios - InAppPurchase 插件无法从 Objective-C 执行 JS 回调

ios - 来自 block 的 @autoreleasepool 中的 EXC_BAD_ACCESS

swift - 当程序因 EXC_BAD_ADDRESS 而崩溃时,代码 EXEC_I386_GPFLT 是什么意思