On 18 Apr 2008, at 05:56, Adam P Jenkins wrote:


On Apr 18, 2008, at 12:47 AM, Bill Bumgarner wrote:

On Apr 17, 2008, at 11:20 PM, Adam P Jenkins wrote:
Exactly. And now that the convention of methods returning self no longer exists, it seems like there's no longer any advantage to this behavior.

There are 10s of thousands invocations of methods on nil objects during the normal, non-error-path, execution of your average Cocoa application that indicate that this behavior is still, very much, used to the advantage (where 'advantage == convenience') of Cocoa programmers.


Can you give an example of where invoking methods on nil objects would make sense in a non-error-path situation? I'm not trying to be argumentative here, I'm really curious to know what Objective-C idioms take advantage of the nil-swallows-messages behavior. Thank you.

Do these count?

1.
// add user defined savepath to savepath menu
NSString * userpath = [[NSUserDefaults standardUserDefaults] objectForKey:ZNCDRevPrefUserDefinedSavepathKey];
if (userpath) {
[savepathPopUpButton insertItemWithTitle:[[NSFileManager defaultManager] displayNameAtPath:userpath] atIndex:2];
        NSMenuItem * userDefinedMenuItem = [savepathPopUpButton itemAtIndex:2];
        [userDefinedMenuItem setTag:CDRevPrefUserDefinedSaveMethod];
}

2.
- (BOOL) isPreEmphasisEnabledForSession:(int)aSession track:(int)aTrack;
{
return [[[[[[[self TOCPlist] objectForKey:ZNDiscTOCSessionsKey] objectAtIndex:(aSession-1)] objectForKey:ZNDiscTOCSessionTrackArrayKey] objectAtIndex:(aTrack-1)] objectForKey:ZNDiscTOCTrackPreEmphasisEnabledFlagKey] boolValue];
}

If not nil messaging certainly makes life easier in these situations.

- Dave
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to