我有 2 节课:
A类:
NSNotification
以姓名注册为观察员notificationName
.h 文件声明 -typedef void (^block1)(NSError *error);
私有实例变量 -block1 _block1_obj;
然后有2个这样的方法:
- (void) doSomethingWithCompletionHandler:(block1)handlerBlock
{
_block1_obj = handlerBlock; // Also tried _block1_obj = [handlerBlock copy];
[classB_obj doAnotherThing];
}
- (void) notificationHandler:(NSNotification *)notification
{
...
_block1_obj(error);
}
B类:
- (void) doAnotherThing
{
...
[[NSNotificationCenter defaultCenter] postNotificationName:notificationName
object:nil
userInfo:dict];
}
现在我在调试时发现,
_block1_obj
在doSomethingWithCompletionHandler
但是一段时间后,当控制权进入 notificationHandler:
_block1_obj
时nil
。
不知道为什么会这样。任何人都可以解释一下吗?
更新:我也尝试使用属性创建一个属性,copy
但它也不起作用。