考虑一下:
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...
}
];
我正在使用这种模式来观察一次通知,然后停止观察它。但是 LLVM 告诉我(在 ARC 下)变量“观察者”在被块捕获时未初始化。
我该如何解决这个问题,因为该块必须在初始化之前捕获变量,它是初始化程序的一部分?使用__block
预选赛会observer
成功吗?