1

インターフェース

@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

何が問題になる可能性がありますか?

4

1 に答える 1

1

そのため、ブロックが時々あるように見えますnil。ブロックが呼び出されると、そのブロックは逆参照されますが、逆参照されnilNULLアプリがクラッシュします。確認しif (self.someBlock != nil)てください。もうクラッシュしないはずです。

于 2012-12-26T16:29:04.347 に答える