Hmm... I think
menuNotify = [MenuNotification alloc];
should be
menuNotify = [[MenuNotification alloc] init];
Reading Apple's documentation I think your right. Though I have no idea what difference it *should* make, given there really shouldn't be much in the way of instance variables I would think, and I'd certainly hope since its a custom class derived just from NSObject that init isn't going to swap me out with something else.
Admittedly though looking at the created object in the debugger does show a whole lot of extra junk there, which I wouldn't personally expect. However, the same junk seems to get the same values from what I can see regardless of "init" or not.
Ah some more apple documentation "The init method defined in the NSObject class does no initialization; it simply returns self." Since I have no init methods defined myself, it seems like it matters squat in the end. Though programming practice certainly says to do it.