在块内调用块时,EXEC-bad-access

时间:2012-12-26 13:49:57

标签: objective-c ios objective-c-blocks

INTERFACE

@interface MyClass

@property (nonatomic, copy) SomeBlock someBlock;

@end

实施

- (void)myMethodWithBlock:(SomeBlock)theBlock
{
  self.someBlock = theBlock;
  [someHelper doSomethingWithCompletionBlock:^(){
        self.someBlock(arg1);
  }
}

self.someBlock(arg1)给我EXEC_BAD_ACCESS的位置,我确定要复制someBlock

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

因此看起来块有时是nil。调用块时,会取消引用该块,但取消引用nilNULL会导致应用程序崩溃。检查if (self.someBlock != nil),它不应再崩溃。