Мне нужно создать прерываемые зацепки в цели c. Прерываемые перехватчики должны иметь возможность прервать операцию, если какой-либо из обратных вызовов перехватчиков прервет операцию. Я думал об использовании NSNotificationCenter
для этого, как:
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
[userInfo setObject: [NSNumber numberWithBool: NO] forKey: @"interrupted"];
[notificationCenter postNotificationName: @"Operation A will happen"
object: self userInfo:userInfo];
if(![[userInfo objectForKey: @"interrupted"] boolValue])
{
[self doOperationA];
}
и со стороны крюка
-(void) operationAWillHappen: (NSNotification *) note
{
if(someCondition)
[(NSMutableDictionary *)note.userInfo setObject:
[NSNumber numberWithBool: YES] forKey: @"interrupted"];
}
Могу ли я так изменить информацию о пользователе? Есть ли лучший способ реализации прерываний в цели c?