Hi Soroush, I've been looking over the code because I'm keen to use Coordinators in my next project. I have stumbled across what looks like a simple typo that I think will cause a reference cycle in BAKAuthenticatingCreateMessageCoordinator. In the startCreation method:
- (void)startCreation {
self.createMessageCoordinator.delegate = self;
[self.createMessageCoordinator start];
[self.childCoordinators addObject:self.childCoordinators]; // <<-- here
}
the object being added to the childCoordinators array should be self.createMessageCoordinator and not self.childCoordinators.