考虑以下内容:
id observer = [[NSNotificationCenter defaultCenter]
addObserverForName:MyNotification
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
[[NSNotificationCenter defaultCenter]
removeObserver:observer
name:MyNotification
object:nil
];
// do other stuff here...
}
];
我正在使用此模式来观察通知一次,然后停止观察。但在ARC下,LLVM告诉我变量“observer”在被块捕获时未初始化。
由于块必须在初始化之前捕获该变量,因为它是初始化程序的一部分,所以我该如何解决这个问题? 使用__block
限定符修饰observer
是否可以解决问题?