With C++, there is a macro*__cplusplus*. Is there anything analogous
for the Objective-C 2.0?
The Xcode 3.0 support converting to Obj-C 2.0 code from pre-2.0
code. However, there are people who still use Obj-C pre 2.0, or even
though they use the 2.0, they may want to maintain code
compatibility with an old compiler.
So, if there is a macro __OBJC_2_0__, it would be very helpful to
write appropriate code for both pre-2.0 and 2.0 compiler.
So, the code will be like :
#ifdef __OBJC_2_0__
statements in Objective-C 2.0 syntax
#else
statement in Obj-C pre 2.0 syntax
#endif
There are no macros that match the available syntax. The available
flags are:
OBJC_API_VERSION
This is set based on the low-level runtime API available.
OBJC_API_VERSION==0 is the legacy API. OBJC_API_VERSION==2 means the
function-based API added in Leopard is available. This is closer to
what you want; it helps because it will disallow the new syntax when
the deployment target is pre-Leopard, but if you're compiling for
10.5+ then it doesn't tell you whether your compiler knows about the
new syntax.
__OBJC2__
This is set based on the ABI version (i.e. the metadata format on
disk). This distinguishes between the legacy (i386+ppc) version and
the modern (x86_64+ppc64) version. This isn't what you want.
You could use OBJC_API_VERSION if your supported combinations are:
* Old compiler with deployment target older than Leopard
* New compiler with any deployment target
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Objc-language mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/objc-language/email@hidden