Note: I'm an Android developer that trying to create iOS apps. So I may be missing some notions. Sorry for that.
In many managers and buisness classes, we could want to have a listeners mechanism (sometimes called events) with some notions to register (or addListener), unregister (or removeListener) and notify (or broadcast) all the listeners registered.
So the problem is the following: "How to create an implementation of the following contract bellow".