FWIW, I don’t see this in Objective-C++ either.

Saagar Jha

> On Oct 23, 2018, at 17:54, James Walker <jam...@frameforge3d.com> wrote:
> 
> On 10/23/18 5:36 PM, Saagar Jha wrote:
>> Saagar Jha
>>> On Oct 23, 2018, at 17:15, James Walker <jam...@frameforge3d.com 
>>> <mailto: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?
> 
> 
> Hmm, it appears to be because I'm using Objective-C++.  When I put that line 
> in a .m file, there was no error.
> 
> 
>>> 
>>>> 
>>>> 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