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, utilizeequalto methods, not == sign comparing pointers hope helps,
objective-c
No comments:
Post a Comment