On Thu, Dec 4, 2008 at 2:32 AM, EVS <[EMAIL PROTECTED]> wrote: > Thank you, I suppose the reason I find it confusing is because self is a > pointer to the current object. If self were to release self ( the current > object ), while it is being used, I would have guessed that would cause > problems.
You can call [self release] as long as you don't access (directly or indirectly) self for the rest of the method. So if you keep from touching instance variables or calling methods off self then things will be fine. And if your caller knows somehow (like checking return values, in the case of init) to not reference the released self then everything is kosher. In fact, the same is true in C++ with "this", only a little more pathologically so. You're allowed to call non-virtual member functions off a bad "this" pointer because those functions are statically bound. Causes confusion in every intro C++ course because students can't figure out why their program is crashing in the middle of a method call (when they finally access an instance variable off the bad "this" pointer). I even saw a horrible design pattern, probably on The Daily WTF, where the programmer was doing singletons via something like: ((MyClass*)NULL)->getInstance(); Totally pathological, but nothing technically wrong with it as long as you're careful. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]