On Fri, Nov 21, 2008 at 3:40 PM, Scott Thompson <[EMAIL PROTECTED]> wrote:
> Technical QA 1405 concerns the creation of Objective-C methods that take
> variable number of arguments... so called variadic methods.  Happily the
> mechanisms just use the standard C mechanisms (va_start and friends).
>
> That being the case, why is it that methods like arrayWithObjects: require
> you to nil terminate the list of arguments?  Is it simply tradition, or some
> kind of optimization?

Without the nil, how would the method know when to stop fetching
arguments with va_arg? This is true in C too, you have to have some
way that tells you how many parameters are being passed and what types
they are, and there are generally only two ways to do this:

1) Have the information encoded in the first parameter (like a printf
format string)
2) Have some sentinel value marking the end of the list (like the nil
passed to arrayWithObjects:)

-- 
Clark S. Cox III
[EMAIL PROTECTED]
_______________________________________________

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