Re: compiling app for 10.6 and 10.7
Re: compiling app for 10.6 and 10.7
- Subject: Re: compiling app for 10.6 and 10.7
- From: Greg Parker <email@hidden>
- Date: Mon, 15 Aug 2011 11:31:11 -0700
On Aug 15, 2011, at 10:50 AM, David Duncan wrote:
> On Aug 15, 2011, at 10:47 AM, Kyle Sluder wrote:
>> On Mon, Aug 15, 2011 at 10:45 AM, David Duncan <email@hidden> wrote:
>>> In either case, the best general way to determine availability of weak-linked implementations is to test for them directly rather than using a system version check (like gestalt). If your using Clang (which I suspect you are not given your error) you could just use:
>>>
>>> "if ([NSPopover class]) { /* do stuff with popovers */ } else { /* do stuff without */ }"
>>
>> Is it the case that this check will only work on 10.6.8 or newer, and
>> that one should fall back on NSClassFromString() if supporting an
>> older version of Snow Leopard?
>
> I'd actually forgotten that this required 10.6.8. If you can require 10.6.8, I would use the new style universally. If you cannot I would use the NSClassFromString style until you can.
There's a bug here. The Objective-C runtime on 10.6.8 supports weak-linked classes, but the NS_CLASS_AVAILABLE macro does not know that.
You can fix this if you are willing to hack your SDK headers. In Foundation/NSObjCRuntime.h, find the macro definition of NS_CLASS_AVAILABLE, and remove the check for __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_7.
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
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