@interface NSMutableArray (variadicMethodExample) |
04 |
05 | - ( void ) appendObjects:(id) firstObject, ...; // This method takes a nil-terminated list of objects. |
06 |
07 | @end |
08 |
09 | @implementation NSMutableArray (variadicMethodExample) |
10 |
11 | - ( void ) appendObjects:(id) firstObject, ... |
12 | { |
13 | id eachObject; |
14 | va_list argumentList; |
15 | if (firstObject) // The first argument isn't part of the varargs list, |
16 | { // so we'll handle it separately. |
17 | [self addObject: firstObject]; |
18 | va_start (argumentList, firstObject); // Start scanning for arguments after firstObject. |
19 | while (eachObject = va_arg (argumentList, id)) // As many times as we can get an argument of type "id" |
20 | [self addObject: eachObject]; // that isn't nil, add it to self's contents. |
21 | va_end (argumentList); |
22 | } |
23 | } |
24 |