ARC have more insertion points - beginning of scope retaining all passed-in arguments or used objects, call point creating objects, and end of scope (auto)releasing objects. A missed retain causes race issues, a missed (auto)release leaks objects and an extra release makes dangling pointers, possibly busts a lot later making it almost impossible to trace and debug.
Sent from my iPhone > On 2013年10月23日, at 0:57, Scott Ribe <[email protected]> wrote: > >> On Oct 22, 2013, at 10:46 AM, Maxthon Chan <[email protected]> wrote: >> >> As I said, either ARC or C++ objects with constructors and destructors >> requires compiler to insert code into the beginning and ending of the >> current scope > > For C++, the constructor is inserted at the call point, not at the beginning > of the scope. Which actually makes it more clear what the problem with switch > is. (If the constructor were inserted at the beginning of the scope, there > would be no problem with potentially skipping over it.) > > -- > Scott Ribe > [email protected] > http://www.elevated-dev.com/ > (303) 722-0567 voice > > > > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
