Saagar Jha

> On Oct 23, 2018, at 17:15, James Walker <jam...@frameforge3d.com> wrote:
> 
> On 10/23/18 3:12 PM, Saagar Jha wrote:
>> What build command are you using? I’m not seeing any warnings with this 
>> code, compiled with clang -x objective-c -framework AppKit 
>> -Wunguarded-availability -mmacosx-version-min=10.9 - :
> 
> If you compile with a deployment version of 10.9, I don't know if it even 
> bothers to look at the else clause.  Try -mmacosx-version-min=10.8.

Oops, that was a typo. I meant -mmacosx-version-min=10.8. Either way, 
@available is checked at runtime, so both cases must be compiled anyways.

>> 
>> #import <AppKit/AppKit.h>
>> 
>> int main() {
>>      NSPrintInfo *info;
>>      if (@available(macOS 10.9, *)) {
>>              info.orientation = NSPaperOrientationPortrait;
>>      } else {
>>              info.orientation = NSPortraitOrientation;
>>      }
>> }
>> 
>> Regardless, if you really need a fix, you should be able to cast through 
>> NSInteger, instead of NSPrintingOperation, as a fallback.
> 
> I'm not sure what you mean by "cast through NSInteger", but if I say
> 
> info.orientation = (NSInteger) NSPortraitOrientation;
> 
> then there's an error, "assigning to NSPaperOrientation from incompatible 
> type NSInteger (aka long)”.

I’m not seeing that error at all, even with -Wall -Wextra. What flags are you 
using?

> 
>> 
>> Saagar Jha
>> 
>>> On Oct 23, 2018, at 15:01, James Walker <jam...@frameforge3d.com 
>>> <mailto: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?
> 

_______________________________________________

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