Yep, you can do this. The #if you're looking for is: #if __has_feature(objc_arc)
... #endif You can just scatter that everywhere in code, or you could do something like this: #if __has_feature(objc_arc) #define DD_RETAIN(_o) (_o) #define DD_RELEASE(_o) #define DD_AUTORELEASE(_o) (_o) #else #define DD_RETAIN(_o) [(_o) retain] #define DD_RELEASE(_o) [(_o) release] #define DD_AUTORELEASE(_o) [(_o) autorelease] #endif This way you can just do this, and not have to worry about whether ARC is on or not: foo = DD_RETAIN(bar); Cheers, Dave On Jun 23, 2012, at 6:37 PM, Jerry Krinock wrote: > I'm curious as to why, when using non-ARC code, the recommendation is to "opt > out" the file with -fobjc-arc. > > How about doing something like this… > > #ifndef HEY_ARC_IS_IN_USE > [foo retain] ; > #endif > > This way the file is fixed "once and for all", and I don't have to be setting > -fobjc-arc every time I reuse this file from now until kingdom come. > Certainly -fobjc-arc is also useful, but the #define seems to make much more > sense for, say, my personal reusable class and class extension files which > tend to be quite short. They contain only a few -retain, -release, etc. > > Does Apple even provide the required HEY_ARC_IS_IN_USE definition? I can't > find any such thing. > > Jerry Krinock > > > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/davedelong%40me.com > > This email sent to davedel...@me.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com