iphone - How to add an integer to an array? -


this must quite basic, wondering how add integer array?

i know can add strings this:

nsmutablearray *trarray = [[nsmutablearray alloc] init]; [trarray addobject:@"0"]; [trarray addobject:@"1"]; [trarray addobject:@"2"]; [trarray addobject:@"3"]; 

but guess can't add integers so:

nsmutablearray *trarray = [[nsmutablearray alloc] init]; [trarray addobject:0]; [trarray addobject:1]; [trarray addobject:2]; [trarray addobject:3]; 

at least compiler isn't happy , tells me i'm doing cast without having told so.

any explanations appreciated.

yes that's right. compiler won't accept code this. difference following:

if write @"a string", it's same if created string , autoreleased it. create object using @"a string".

but array can store objects (more precise: pointers object). have create objects store integer.

nsnumber *anumber = [nsnumber numberwithinteger:4]; [yourarray addobject:anumber]; 

to retrive integer again, this

nsnumber anumber = [yourarray objectatindex:6]; int yourinteger = [anumber intvalue]; 

i hope answer helps understand why doesn't work. can't cast integer pointer. , warning xcode.

edit:

it possible write following

[yourarray addobject:@3]; 

which shortcut create nsnumber. same syntax available arrays

@[@1, @2]; 

will give nsarray containing 2 nsnumber objects values 1 , 2.


Comments