Re: More Xcode 7 inconsistency?
Re: More Xcode 7 inconsistency?
- Subject: Re: More Xcode 7 inconsistency?
- From: email@hidden
- Date: Thu, 07 Jan 2016 16:19:06 +0900
At runtime all bets are off anyway.
Nullability is a compile time constraint for Objective-C and a helper for Swift overlays.
You can still pass an object in runtime in Objective-C.
It's up to the receiver to handle it.
Sent from my iPhone
> On Jan 7, 2016, at 1:32 PM, Shane Stanley <email@hidden> wrote:
>
>> On 14 Oct 2015, at 2:27 PM, Shane Stanley <email@hidden> wrote:
>>
>>> On 14 Oct 2015, at 1:33 PM, Graham Cox <email@hidden> wrote:
>>>
>>> I’ve been passing nil forever, only now does Xcode 7 complain, presumably because only now is the _Nonnull attribute added. But either the documentation or the addition of _Nonnull is wrong.
>>
>> FWIW, I've had an open bug on this since July (#21667200). You might also notice the docs say "dict can be nil", and there isn't a "dict" to be seen (presumably it means docAttributes).
>
> Coming back to this, my bug has just been closed, with a pointer to:
>
> <https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAttributedString_AppKitAdditions/index.html#//apple_ref/doc/uid/TP40004007>
>
> And sure enough, where it once said:
>
> - (NSData * nullable)RTFFromRange:(NSRange)aRange
> documentAttributes:(NSDictionary<NSString *,
> id> * nonnull)docAttributes
>
> it now says:
>
> - (NSData *)RTFFromRange:(NSRange)aRange
> documentAttributes:(NSDictionary<NSString *,
> id> *)docAttributes
>
>
> The description is unchanged:
>
>> If there are no document-level attributes, dict can be nil.
>
> Great.
>
> However, when I look at the .h file, it's all wrapped in NS_ASSUME_NONNULL_BEGIN, and using the method with nil prompts exactly the same warning. So the contradiction between the documentation and actual behavior still stands, just not so obviously.
>
> All of which led me to also look at this in the same document:
>
> - (instancetype)initWithRTFD:(NSData *)rtfdData
> documentAttributes:(NSDictionary<NSString *,
> id> * _Nullable *)docAttributes
>
>
> for which the .h file (Xcode 7.2) actually says:
>
> - (nullable instancetype)initWithRTF:(NSData *)data documentAttributes:(NSDictionary<NSString *, id> * __nullable * __nullable)dict;
>
> Am I just being a pedant or is this all a bit hopeless?
>
>
> --
> Shane Stanley <email@hidden>
> <www.macosxautomation.com/applescript/apps/>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden