Saturday, 15 June 2013

objective c - Searching an NSMutableArray of classes -



objective c - Searching an NSMutableArray of classes -

i have own class defined below.

@interface personlist : nsobject @property(nonatomic, strong)nsnumber *id; @property(nonatomic, strong)nsstring *firstname; @property(nonatomic, strong)nsstring *secondname; @end

i utilize next method:

personlist *p = [[personlist alloc]init]; [p setid: ...]; [p setfirstname:...]; [p setsecondname:...];

then add together array.

[personlistarray addobject:p];

what i'm trying search array class id = x.

is best way?

for(int = 0; < personlistarray.count; i++) { personlistarray *apersonlistarray = [personlistarray objectatindex:i]; if(apersonlistarray.id == x) { //do want here //break; } }

thanks

you can utilize nsarray method makes things lot easier , optimized:

- (nsuinteger)indexofobjectpassingtest:(bool (^)(id obj, nsuinteger idx, bool *stop))predicate

your code should that:

nsinteger personindex = [personlistarray indexofobjectpassingtest:^bool(personlist person, nsuinteger idx, bool *stop) { homecoming [person.id isequaltonumber:x]; }]; personlist personlist = personlistarray[personindex]

two more things:

you might consider not capitalizing variables, follow conventions. if want compare values of objects in objc, utilize equalto methods, not == sign comparing pointers

hope helps,

objective-c

No comments:

Post a Comment