On 12 Jun 2008, at 5:03 pm, Chris Suter wrote:

In the original example, myNum was being passed as a argument rather than having a message to sent to it and it’s often not safe to pass nil objects as arguments.


Hmmm... well, what's the function it's passed to going to do with it, other than call a method on it? If it's doing anything else, it's breaking other (much stronger) rules. If it tries to access its ivars directly, that's breaking encapsulation. If it tried to release it, that breaks memory management rules... etc. So I think in general it's quite safe to pass nil arguments where an object is expected - I certainly do it all the time, and haven't found any real problem with that so far.

Contractually, nil is defined as type id, and type id can be passed for any object type, so this is not even a hack - it's entirely permitted by design. NULL on the other hand, is another story.

Code that does not allow a nil argument should assert that. If it doesn't it is implicitly allowing nil, unless it is specifically documented otherwise.

Can you give me a counter-example?

G._______________________________________________

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