On Apr 9, 2008, at 7:43 AM, Lorenzo Bevilacqua wrote:

I'm trying to build a Cocoa application so that it can run on Mac OS X from version 10.3.9 to 10.5. I have 10.5 installed so the application runs fine on my system and on other Leopard systems. I haven't build a project for multiple platforms yet, so I tried to duplicate the main Xcode target and set different deployment target settings like

Typically you would only use 1 target. Use the SDK to the OS whose API your are targeting (such as the 10.5 SDK). Then set the deployment target to the minimum version you wish to run on (example, 10.3). Finally, you would do runtime checks for API availability.

Till now all Ok, but when I try to compile for example the Tiger target I get some errors (mainly about fast enumeration). Thus I have some questions:

- Does the Objective-C 2.0 fast enumeration make sense to be used? I mean, if I don't use it, will my application perform worse on Leopard?

Fast enumeration relies on selectors that are only implemented on 10.5, so you can't use it on 10.4 or earlier systems. You cant use most Obj-C 2.0 features if you wish to be compatible with 10.4 or below.

- Is there a way to differentiate part of code by platform? I remember I saw in some files lines like this

#if MACOSX_DEPLOYMENT_TARGET == MAC_OS_X_VERSION_10_4
#endif

is this correct?


This is a compile time check. Generally it is appropriate if you plan to ship a binary with a specific compile-time dependency. It sounds like you really want a run time check, which requires you to check for the availability of the features you are trying to use. How you check for this will depend on what you are doing to some degree.
--
David Duncan
Apple DTS Animation and Printing
[EMAIL PROTECTED]



_______________________________________________

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]

Reply via email to