• 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: Good idea/bad idea?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: Good idea/bad idea?
      • From: Alex Zavatone <email@hidden>
References: 
 >Good idea/bad idea? (From: Alex Zavatone <email@hidden>)
 >Re: Good idea/bad idea? (From: Luther Baker <email@hidden>)

  • Prev by Date: Re: NSOperation - Update UI with delegate or in a Controller with oberseValueForKeyPath:
  • Next by Date: Re: Good idea/bad idea?
  • Previous by thread: Re: Good idea/bad idea?
  • Next by thread: Re: Good idea/bad idea?
  • Index(es):
    • Date
    • Thread