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 <david.dun...@apple.com> 
>> 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     gpar...@apple.com     Runtime Wrangler


_______________________________________________

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 arch...@mail-archive.com

Reply via email to