• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to get rid of Warning
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to get rid of Warning


  • Subject: Re: How to get rid of Warning
  • From: じょいすじょん <email@hidden>
  • Date: Fri, 17 Jun 2016 00:47:07 +0900

If you're using NS_ASSUME_NONNULL
you can get away with:
withError:(NSError *__nullable*)

It's an outError (out parameter) which in C parlance is a pointer to a pointer.
By convention it is a pointer to a pointer declared as NSError type but set to nil.
It's easy to forget, so I keep a snippet in Xcode triggered by the keyword outError to fill it in for me.

My snippet predates things a bit and might be overkill with
error:(out NSError * __nullable __autoreleasing * __nullable)outError

But I copied it from Apple frameworks, I believe NSFileManager, some time back.
The second nullable means you can just pass nil meaning you don't want the error back at all, though that's probably fallen out of fashion.
out is as I recall just a helper to the compiler.

> On Jun 16, 2016, at 11:57 PM, Dave <email@hidden> wrote:
>
>> You probably added a “nullable” or “__nullable” attribute somewhere else in that header. If you do that, the compiler enables nullability and will then (by default) require _every_ pointer parameter to have a nullability attribute.
>
> Sorry, I should have said this file has been updated to use nullability, I am just asking what the exact syntax is to stop it complaining about:
>
> withError:(NSError**) theError ?
>
> I’ve tried withError:(nullable NSError**) but it doesn’t work?
>
> Cheers
> Dave
>
>> On 15 Jun 2016, at 18:49, Jens Alfke <email@hidden> wrote:
>>
>>> I’m getting the Warning - "Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)”
>>
>> You probably added a “nullable” or “__nullable” attribute somewhere else in that header. If you do that, the compiler enables nullability and will then (by default) require _every_ pointer parameter to have a nullability attribute.
>>
>> If you want to add nullability annotations in declarations, you should bracket the header with NS_ASSUME_NONNULL_BEGIN and NS_ASSUME_NONNULL_END. These are macros that will enable nullability but tell the compiler to assume _Nonnull if no attribute is given. These macros are used in all the Cocoa headers.
>>
>> —Jens
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Xcode-users mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: How to get rid of Warning
      • From: Dave <email@hidden>
References: 
 >How to get rid of Warning (From: Dave <email@hidden>)
 >Re: How to get rid of Warning (From: Jens Alfke <email@hidden>)
 >Re: How to get rid of Warning (From: Dave <email@hidden>)

  • Prev by Date: Re: How to get rid of Warning
  • Next by Date: Can Xcode 8 not use the new ObjC-Swift bridging?
  • Previous by thread: Re: How to get rid of Warning
  • Next by thread: Re: How to get rid of Warning
  • Index(es):
    • Date
    • Thread