Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NSArray arrayWithObjects: if nil is meant to mark array end, can I do ...nil, nil]?

If nil is meant to mark the end of parameters, then can I use:

[NSArray arrayWithObjects:obj1, obj2, nil, nil, nil];

as the first nil marks array end and two nils after will be ignored?

I got two opposite answers and will try it out.

update:

The reason why I need to do this, is I need to create an UIAlertView, which may have buttons: 'OK' only, or 'Call' and 'Cancel', so either 'OK' or 'Cancel', is the cancel button, whereas 'Call' is other buttons in one case, in other cases, I do not need any other buttons, that's why I need to do this.

like image 743
hzxu Avatar asked Dec 02 '22 21:12

hzxu


1 Answers

When you put nil when creating NSArray, objects upto that nil get added. The nil and objects after that are ignored. Just to complete, you can't add nil to NSMutableArray also (say using addObject: method) and doing that will raise exception.

you can put [NSNull null]; though when creating NSArray.

like image 115
Krishnabhadra Avatar answered Jan 08 '23 13:01

Krishnabhadra