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 12:48:20 -0700
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.
On Apr 24, 2014, at 8:12 AM, Luther Baker wrote:
> Not native and I've no idea when or if this is a good idea ... nor am I sure how much typing you want to do ... but you _could_ create a class convenience method for this
>
> x = [Thing defaultIfNil:x];
>
> With shorter or longer names as you see fit ... down to possibly:
>
> x = [Thing :x]
>
> I've really no idea if that syntax would work but it stands out and might be easy to use and identify in the code!
>
> -Luther
>
>
>> On Apr 24, 2014, at 9:33 AM, Alex Zavatone <email@hidden> wrote:
>>
>> I was just asked yesterday if there is any shorthand in Objective-C for "if this thing = nil, then instantiate a new instance from the class"
>>
>> Something like this:
>>
>> NSString x;
>>
>> if ([x isEqualtoString:nil]) {
>> x = @"yo";
>> }
>>
>> Feel free to replace NSString with any class.
>>
>> And we messed around a bit looking for any shorthand and though it looked like a terrible idea since the comparison is done against integers using the ternary operator, I'd like to know exactly why it's a terrible idea.
>>
>> NSString x;
>>
>> x = (x) ?: @"yo";
>>
>> Thanks in advance.
>> - Alex
>>
>> _______________________________________________
>>
>> 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
_______________________________________________
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