【发布时间】:2011-05-31 20:24:38
【问题描述】:
我对objective-c 中的块还很陌生,想知道我的这个伪代码是否正确。我不确定仅删除观察者是否足够,或者我是否必须调用 removeObserver:name:object:
-(void) scan {
Scanner *scanner = [[Scanner alloc] init];
id scanComplete = [[NSNotificationCenter defaultCenter] addObserverForName:@"ScanComplete"
object:scanner
queue:nil
usingBlock:^(NSNotification *notification){
/*
do something
*/
[[NSNotificationCenter defaultCenter] removeObserver:scanComplete];
[scanner release];
}];
[scanner startScan];
}
更新:我从这个区块收到间歇性的EXC_BAD_ACCESS,所以这不可能。
【问题讨论】:
标签: ios objective-c cocoa objective-c-blocks