Objective-C, ARC compatible, weak observer logic