objective c - SearchBar programming in iPhone/iPad -


i have data this...(all data comes .plist file...)

searching array - (         {         firstname = "ramesh";         lastname = "bean";         empcode = 1001;     },         {         firstname = "rohan";         lastname = "rathor";         empcode = 102;     },         {         firstname = "priya";         lastname = "malhotra";         empcode = 103;     },         {         firstname = "mukesh";         lastname = "sen";         empcode = 104;     },         {         firstname = "priya";         lastname = "datta";         empcode = 105;     }  ) 

i want implement search data array on basis of firstname (key).

i able search data "firstname(key)"

but after filtering data suppose clicked row( in data) displayed in tableview. navigate me new-controller information of particular employee (like: firstname,lastname,empcode).

how can information?

as gone through search sample codes.

here search code...

nsstring *searchtext = searchbar.text;     nsmutablearray *searcharray = [[nsmutablearray alloc] init];     nsinteger totalnoofrecords=[self.searchtabledatasource count];      (int i=0;i<totalnoofrecords;i++)     {   nsdictionary *dictionary = [self.searchtabledatasource objectatindex:i];         nsarray *array = [dictionary objectforkey:@"firstname"];           [searcharray addobject:array];       }     (nsstring *stemp in searcharray)     {          nsrange titleresultsrange = [stemp rangeofstring:searchtext options:nscaseinsensitivesearch];          if (titleresultsrange.length > 0)         {                 [copylistofitems addobject:stemp];          }     } 

how can improve code?....please guide me... [searcharray release]; searcharray = nil;

how maintain "keys(firstname,lastname,empcode)" in searcharray please me out? thanks...

use nspredicate.

searcharray plist in nsarray. make new searcharray2 searcharray , filter using nspredicate.

searcharray2 = [[nsmutablearray alloc] initwitharray:searchingarray copyitems:yes]; nspredicate *predicate = [nspredicate predicatewithformat:@"firstname in %@", searchtabledatasource]; [searchingarray2 filterusingpredicate:predicate]; 

so code should this:

temparray = [[nsarray alloc] initwithcontentsoffile:[[nsbundle mainbundle] pathforresource:@"1" oftype:@"plist"]]; searcharray = [temparray valueforkey:@"firstname"]; nsstring *searchtext = searchbar.text; nsmutablearray *searchresults;  (nsstring *stemp in searcharray) {     nscomparisonresult result = [searchtext compare:searchtext options:(nscaseinsensitivesearch) range:nsmakerange(0, [searchtext length])];             if (result == nsorderedsame)             {                 [searchresults addobject:stemp];             } searcharray2 = [[nsmutablearray alloc] initwitharray:searcharray copyitems:yes]; nspredicate *predicate = [nspredicate predicatewithformat:@"firstname in %@", searchresults]; [searcharray2 filterusingpredicate:predicate]; } 

then post searcharray2 nslog
nslog(@"searcharray2: %@", searcharray2)
, tell me if satisfied results:)


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -