Note that there are some explanatory texts on larger screens.

plurals
  1. POiPhone: App Crashes When Search Bar Used in TableView
    text
    copied!<p>I'm new to this and in my application I use <code>UISearchBar</code>. When I enter any word to search in it the application crashes.</p> <p>In my project I am using sqlite and values are fetched from the db in <code>AppDelegate</code> and saved in an <code>NSMutableArray</code> named <code>docArray</code>.</p> <p><strong>RootViewController.m</strong></p> <pre><code> - (void)viewDidLoad{ listOfItems = [[NSMutableArray alloc] init]; NSDictionary *value = [NSDictionary dictionaryWithObject:appDelegate.docArray forKey:@"doctors"]; [listOfItems addObject:value]; // Intialize copy array that will store the result of search result copyListOfItems = [[NSMutableArray alloc] init]; // Add Search bar to main view ..... self.tableView.tableHeaderView = searchBar; searchBar.autocorrectionType = UITextAutocorrectionTypeNo; searching = NO; letUserSelectRow = YES; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { if (searching) return 1; else return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (searching) return [copyListOfItems count]; else return [appDelegate.arryData count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } if (searching) { waitsup *wu = [copyListOfItems objectAtIndex:indexPath.row]; [cell.textLabel setText:[NSString stringWithFormat:@"%@ %@ %@", wu.first_name, wu.last_name, wu.title]]; cell.imageView.image = [UIImage imageNamed:@"wudoc.jpg"]; [cell.detailTextLabel setText:[NSString stringWithFormat:@"%@ %@ %@", wu.city, wu.state, wu.zipcode]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } else { waitsup *wu = [appDelegate.arryData objectAtIndex:indexPath.row]; [cell.textLabel setText:[NSString stringWithFormat:@"%@ %@ %@", wu.first_name, wu.last_name, wu.title]]; cell.imageView.image = [UIImage imageNamed:@"wudoc.jpg"]; [cell.detailTextLabel setText:[NSString stringWithFormat:@"%@ %@ %@", wu.city, wu.state, wu.zipcode]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } return cell; } -(void)searchBarTextDidBeginEditing :(UISearchBar *)theSearchBar { NSLog(@"Now in searchBarTextDidBeginEditing"); searching = YES; letUserSelectRow = NO; self.tableView.scrollEnabled = NO; // Add Done button ........ self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneSearching_clicked:)] autorelease]; } -(NSIndexPath *)tableView :(UITableView *)theTableView willSelectRowAtIndexPath :(NSIndexPath*)indexPath { NSLog(@"will select Row At Index Path"); if (letUserSelectRow) { return indexPath; } else { return nil; } } -(void)searchBar :(UISearchBar*)theSearchBar textDidChange :(NSString*)searchText { NSLog(@"textDidChange"); // it is done so that data can be selected as new search [copyListOfItems removeAllObjects]; if ([searchText length] &gt; 0) { searching = YES; letUserSelectRow = YES; self.tableView.scrollEnabled = YES; [self searchTableView]; } else { searching = NO; letUserSelectRow = NO; self.tableView.scrollEnabled = NO; } [self.tableView reloadData]; } -(void)searchBarSearchButtonClicked :(UISearchBar*)theSearchBar { NSLog(@"searchBarSearchButtonClicked"); [self searchTableView]; } -(void)searchTableView { NSLog(@"searchTableView"); NSString *searchText = searchBar.text; NSMutableArray *searchArray = [[NSMutableArray alloc] init]; for (NSDictionary *dictionary in listOfItems) { NSArray *array = [dictionary objectForKey:@"first_name"]; [searchArray addObjectsFromArray:array]; } for (waitsup *sTemp in searchArray) { NSRange titleResultsRange = [[NSString stringWithFormat:@"%@ %@",sTemp.first_name, sTemp.last_name] rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (titleResultsRange.length &gt; 0) { NSLog(@"%@", sTemp); [copyListOfItems addObject:sTemp]; } } [searchArray release]; searchArray = nil; } -(void)doneSearching_clicked:(id)sender { NSLog(@"doneSearching_clicked"); searchBar.text = @" "; [searchBar resignFirstResponder]; letUserSelectRow = YES; searching = NO; self.navigationItem.rightBarButtonItem = nil; self.tableView.scrollEnabled = YES; [self.tableView reloadData]; } </code></pre> <p>console show following error :</p> <pre><code>2010-07-22 13:36:16.002 wu2[1077:207] Processing Element: array 2010-07-22 13:36:16.004 wu2[1077:207] Processing Element: XML_Serializer_Tag 2010-07-22 13:36:16.005 wu2[1077:207] Processing Element: id 2010-07-22 13:36:16.005 wu2[1077:207] Processing Value: 1 2010-07-22 13:36:16.006 wu2[1077:207] Processing Element: first_name 2010-07-22 13:36:16.007 wu2[1077:207] Processing Value: Prateek 2010-07-22 13:36:16.007 wu2[1077:207] Processing Element: middle_name 2010-07-22 13:36:16.008 wu2[1077:207] Processing Value: K 2010-07-22 13:36:16.008 wu2[1077:207] Processing Element: last_name 2010-07-22 13:36:16.009 wu2[1077:207] Processing Value: Bhanot 2010-07-22 13:36:16.009 wu2[1077:207] Processing Element: title 2010-07-22 13:36:16.010 wu2[1077:207] Processing Value: Er. 2010-07-22 13:36:16.011 wu2[1077:207] Processing Element: org_name 2010-07-22 13:36:16.011 wu2[1077:207] Processing Value: Cyber 2010-07-22 13:36:16.012 wu2[1077:207] Processing Element: upin 2010-07-22 13:36:16.014 wu2[1077:207] Processing Value: 34242 2010-07-22 13:36:16.014 wu2[1077:207] Processing Element: npi 2010-07-22 13:36:16.015 wu2[1077:207] Processing Value: 2343242 2010-07-22 13:36:16.015 wu2[1077:207] Processing Element: address1 2010-07-22 13:36:16.015 wu2[1077:207] Processing Value: Maler Kotla 2010-07-22 13:36:16.016 wu2[1077:207] Processing Element: address2 2010-07-22 13:36:16.016 wu2[1077:207] Processing Value: Mohali 2010-07-22 13:36:16.018 wu2[1077:207] Processing Element: city 2010-07-22 13:36:16.018 wu2[1077:207] Processing Value: Chandigarh 2010-07-22 13:36:16.018 wu2[1077:207] Processing Element: state 2010-07-22 13:36:16.019 wu2[1077:207] Processing Value: Punja 2010-07-22 13:36:16.020 wu2[1077:207] Processing Element: zipcode 2010-07-22 13:36:16.020 wu2[1077:207] Processing Value: 12345 2010-07-22 13:36:16.021 wu2[1077:207] Processing Element: country 2010-07-22 13:36:16.022 wu2[1077:207] Processing Value: India 2010-07-22 13:36:16.022 wu2[1077:207] Processing Element: county 2010-07-22 13:36:16.023 wu2[1077:207] Processing Element: office_phone1 2010-07-22 13:36:16.025 wu2[1077:207] Processing Value: 13123131 2010-07-22 13:36:16.027 wu2[1077:207] Processing Element: fax1 2010-07-22 13:36:16.028 wu2[1077:207] Processing Value: 2131231 2010-07-22 13:36:16.028 wu2[1077:207] Processing Element: gender 2010-07-22 13:36:16.029 wu2[1077:207] Processing Value: male 2010-07-22 13:36:16.030 wu2[1077:207] Processing Element: status 2010-07-22 13:36:16.030 wu2[1077:207] Processing Value: active 2010-07-22 13:36:16.031 wu2[1077:207] Processing Element: profiletype 2010-07-22 13:36:16.031 wu2[1077:207] Processing Value: user 2010-07-22 13:36:16.032 wu2[1077:207] Processing Element: entity 2010-07-22 13:36:16.033 wu2[1077:207] Processing Value: practice 2010-07-22 13:36:16.034 wu2[1077:207] Processing Element: XML_Serializer_Tag 2010-07-22 13:36:16.035 wu2[1077:207] Processing Element: id 2010-07-22 13:36:16.035 wu2[1077:207] Processing Value: 2 2010-07-22 13:36:16.036 wu2[1077:207] Processing Element: first_name 2010-07-22 13:36:16.036 wu2[1077:207] Processing Value: Hitu 2010-07-22 13:36:16.037 wu2[1077:207] Processing Element: middle_name 2010-07-22 13:36:16.038 wu2[1077:207] Processing Value: k 2010-07-22 13:36:16.038 wu2[1077:207] Processing Element: last_name 2010-07-22 13:36:16.039 wu2[1077:207] Processing Value: bansal 2010-07-22 13:36:16.040 wu2[1077:207] Processing Element: title 2010-07-22 13:36:16.040 wu2[1077:207] Processing Value: Doctor 2010-07-22 13:36:16.041 wu2[1077:207] Processing Element: org_name 2010-07-22 13:36:16.041 wu2[1077:207] Processing Value: Cyebertron 2010-07-22 13:36:16.042 wu2[1077:207] Processing Element: upin 2010-07-22 13:36:16.042 wu2[1077:207] Processing Value: 34242 2010-07-22 13:36:16.043 wu2[1077:207] Processing Element: npi 2010-07-22 13:36:16.043 wu2[1077:207] Processing Value: 2343242 2010-07-22 13:36:16.044 wu2[1077:207] Processing Element: address1 2010-07-22 13:36:16.045 wu2[1077:207] Processing Value: Mohali 2010-07-22 13:36:16.045 wu2[1077:207] Processing Element: address2 2010-07-22 13:36:16.046 wu2[1077:207] Processing Value: chd 2010-07-22 13:36:16.046 wu2[1077:207] Processing Element: city 2010-07-22 13:36:16.047 wu2[1077:207] Processing Value: Chandigarh 2010-07-22 13:36:16.048 wu2[1077:207] Processing Element: state 2010-07-22 13:36:16.048 wu2[1077:207] Processing Value: Punja 2010-07-22 13:36:16.049 wu2[1077:207] Processing Element: zipcode 2010-07-22 13:36:16.049 wu2[1077:207] Processing Value: 12345 2010-07-22 13:36:16.050 wu2[1077:207] Processing Element: country 2010-07-22 13:36:16.050 wu2[1077:207] Processing Value: India 2010-07-22 13:36:16.051 wu2[1077:207] Processing Element: county 2010-07-22 13:36:16.051 wu2[1077:207] Processing Value: jljljlkj 2010-07-22 13:36:16.052 wu2[1077:207] Processing Element: office_phone1 2010-07-22 13:36:16.053 wu2[1077:207] Processing Value: 12-32-3-3 2010-07-22 13:36:16.053 wu2[1077:207] Processing Element: fax1 2010-07-22 13:36:16.054 wu2[1077:207] Processing Value: 12331331 2010-07-22 13:36:16.054 wu2[1077:207] Processing Element: gender 2010-07-22 13:36:16.055 wu2[1077:207] Processing Value: male 2010-07-22 13:36:16.056 wu2[1077:207] Processing Element: status 2010-07-22 13:36:16.056 wu2[1077:207] Processing Value: active 2010-07-22 13:36:16.057 wu2[1077:207] Processing Element: profiletype 2010-07-22 13:36:16.057 wu2[1077:207] Processing Value: dr411 2010-07-22 13:36:16.058 wu2[1077:207] Processing Element: entity 2010-07-22 13:36:16.058 wu2[1077:207] Processing Value: provider 2010-07-22 13:36:16.059 wu2[1077:207] No Errors 2010-07-22 13:36:20.923 wu2[1077:207] Now in searchBarTextDidBeginEditing 2010-07-22 13:36:22.899 wu2[1077:207] textDidChange 2010-07-22 13:36:22.900 wu2[1077:207] searchTableView 2010-07-22 13:36:22.901 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:22.985 wu2[1077:207] textDidChange 2010-07-22 13:36:22.986 wu2[1077:207] searchTableView 2010-07-22 13:36:22.987 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:23.073 wu2[1077:207] textDidChange 2010-07-22 13:36:23.074 wu2[1077:207] searchTableView 2010-07-22 13:36:23.075 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:23.249 wu2[1077:207] textDidChange 2010-07-22 13:36:23.250 wu2[1077:207] searchTableView 2010-07-22 13:36:23.250 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:23.449 wu2[1077:207] textDidChange 2010-07-22 13:36:23.450 wu2[1077:207] searchTableView 2010-07-22 13:36:23.450 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:23.625 wu2[1077:207] textDidChange 2010-07-22 13:36:23.626 wu2[1077:207] searchTableView 2010-07-22 13:36:23.626 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:23.777 wu2[1077:207] textDidChange 2010-07-22 13:36:23.778 wu2[1077:207] searchTableView 2010-07-22 13:36:23.778 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:24.377 wu2[1077:207] searchBarSearchButtonClicked 2010-07-22 13:36:24.377 wu2[1077:207] searchTableView 2010-07-22 13:36:24.378 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:26.157 wu2[1077:207] doneSearching_clicked 2010-07-22 13:36:26.161 wu2[1077:207] textDidChange 2010-07-22 13:36:26.161 wu2[1077:207] searchTableView 2010-07-22 13:36:26.162 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:26.162 wu2[1077:207] &lt;waitsup: 0x6e16100&gt; 2010-07-22 13:36:27.071 wu2[1077:207] Now in searchBarTextDidBeginEditing 2010-07-22 13:36:28.329 wu2[1077:207] textDidChange 2010-07-22 13:36:28.330 wu2[1077:207] searchTableView 2010-07-22 13:36:30.221 wu2[1077:207] doneSearching_clicked 2010-07-22 13:36:30.224 wu2[1077:207] textDidChange 2010-07-22 13:36:30.224 wu2[1077:207] searchTableView 2010-07-22 13:36:30.225 wu2[1077:207] &lt;waitsup: 0x6e14fc0&gt; 2010-07-22 13:36:30.226 wu2[1077:207] &lt;waitsup: 0x6e16100&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload