Re: Good idea/bad idea?
Re: Good idea/bad idea?
- Subject: Re: Good idea/bad idea?
- From: Lee Ann Rucker <email@hidden>
- Date: Thu, 24 Apr 2014 14:39:16 -0700
I hadn't known about the "foo ?: something" when I was thinking of macros - it's much closer to an orIfNil: than "foo ? foo : something"
An orIfNull: for NSObject and NSNull might be nice for those times when you put placeholders in dictionaries.
On Apr 24, 2014, at 2:21 PM, Andy Lee wrote:
>
> On Apr 24, 2014, at 4:10 PM, Alex Zavatone <email@hidden> wrote:
>
>> Could we throw a category on NSObject for that and then every class that originates with NSObject gets that lovely method?
>
> Not exactly, because unlike Smalltalk's nil, Objective-C's nil is *not* an object. But you could switch it around:
>
> @implementation NSObject (NilCheck)
> - (id)fallbackIfNil:(id)obj { return obj ?: self; }
> @end
>
> I still don't see how
>
> foo = [@"Something" fallbackIfNil:foo];
>
> has any advantage over
>
> foo = foo ?: @"Something";
>
> which is less verbose, doesn't have the cost of a message send, and uses an operator the reader of the code should already know.
>
> --Andy
>
>>
>> Agree on the clunky bit, but so is using the @ compiler directive to accomplish everything that couldn't be fit in in the first place. Not as if I know a better way to do it, but I agree, they do feel clunky.
>>
>> On Apr 24, 2014, at 3:48 PM, Lee Ann Rucker wrote:
>>
>>> In Smalltalk, where nil is an object like everything else, and we were working with calls out to C APIs that had a lot of required parameters, we added an "orIfNil:" that was very useful:
>>>
>>> foo := bar orIfNil:10.
>>>
>>> Nil
>>> orIfNil:other
>>> ^other
>>>
>>> Object
>>> orIfNil:other
>>> ^self
>>>
>>> It would be useful in ObjC if there were an elegant way to do it. Macros are just clunky.
>>
>> _______________________________________________
>>
>> 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