> On Oct 23, 2018, at 3:01 PM, James Walker <jam...@frameforge3d.com> wrote:
> 
> I had some code like this
> 
> pInfo.orientation = NSPaperOrientationPortrait;
> 
> where pInfo is of type NSPrintInfo*.  When compiling with 
> -Wunguarded-availability, I got a warning saying that 
> NSPaperOrientationPortrait is only available on macOS 10.9 and later. So I 
> wanted to change it to:
> 
> if (@available( macOS 10.9, * ))
> {
>       pInfo.orientation = NSPaperOrientationPortrait;
> }
> else
> {
>       pInfo.orientation = NSPortraitOrientation
> }
> 
> But then I get an error, "assigning to NSPaperOrientation from incompatible 
> type NSPrintingOrientation".  If I fix the error by adding a typecast to 
> NSPaperOrientation, then I get a warning that NSPaperOrientation is only 
> available on 10.9 and later.  Is there any way out of this roundabout, other 
> than using a later deployment target?

Dumb answer: use #pragma clang diagnostic to disable the guarded availability 
check on that line. Something like this:

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wunguarded-availability"
        pInfo.orientation = (NSPaperOrientation)NSPortraitOrientation;
    #pragma clang diagnostic pop

You should file a bug report against AppKit. I'm not sure there is any benefit 
to marking a plain C enum as unavailable. Use of a new enum would work fine 
when running on an old OS version.


-- 
Greg Parker     gpar...@apple.com <mailto: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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to