Re: have Leopard functionality and still run on Tiger
Re: have Leopard functionality and still run on Tiger
- Subject: Re: have Leopard functionality and still run on Tiger
- From: Chris Hanson <email@hidden>
- Date: Mon, 19 Nov 2007 17:39:35 -0800
On Nov 19, 2007, at 2:33 PM, email@hidden wrote:
The only way to ensure that your code is working on both platforms
is to first compile against the 10.4 SDK to outline the areas that
are missing because you're using 10.5 functionality.
This is incorrect.
In Xcode terminology, an "SDK" represents a set of operating system
capabilities you want your software to use, while a "deployment
target" represents the minimum version of the operating system you
want your software to run on.
Thus you can build against the Mac OS X 10.5 SDK, and set the Mac OS X
Deployment Target to 10.4, and anything you use which is 10.5-only
will be weak-linked and therefore NULL/nil/Nil when running on 10.4.
Unfortunately you can't just directly use or subclass 10.5-only
classes in this situation, since the Objective-C runtime can't handle
the situation where these class references have been resolved to Nil,
but that's pretty much the only restriction on using 10.5
functionality in code that needs to run on 10.4 (or 10.4 functionality
in 10.3, etc.).
To determine what capabilities you can use on 10.4, there's no real
substitute for the actual Mac OS X documentation. It's worth reading
to understand which features were added and modified in a particular
release of Mac OS X, and the Xcode Research Assistant has a slice
which will tell you the OS compatibility of any particular method call
or class you're using.
-- Chris
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden