La aplicación se bloquea al hacer clic en UISearchbar (searchDisplayController)

Estoy implementando el controlador de visualización de búsqueda en la aplicación de iPhone, pero aparece el siguiente error cuando intento hacer clic en la barra de búsqueda (después de algunos intentos)

Thread 1: EXC_BAD_ACCESS (code=1, address=0x30000008)

enter image description here

Fragmento de mi código de la siguiente manera:

- (void)viewDidLoad
{

  //Setting up the search bar for search display controller
  UISearchBar *tempBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 34, 320, 44)];
  self.sBar = tempBar;
  [tempBar release];
  self.sBar.delegate = self;
  self.sBar.tintColor = [UIColor colorWithHexString:@"#b6c0c7"];
  self.sBar.placeholder = @"Search DM friends";

  self.searchDisplayController = [[[UISearchDisplayController alloc] initWithSearchBar:sBar contentsController:self]autorelease];
  [self setSearchDisplayController:searchDisplayController];
  [searchDisplayController setDelegate:self];
  [searchDisplayController setSearchResultsDataSource:self];
  self.searchDisplayController.searchResultsTableView.delegate = self;
}


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *headerView = [[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 78)]autorelease];
    headerView.backgroundColor = [UIColor colorWithHexString:@"#ebe7e6"];

    if (tableView != self.searchDisplayController.searchResultsTableView){
        //Search

        UILabel *tagFriendsTitle = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 320, 16)];
        tagFriendsTitle.font = [UIFont boldSystemFontOfSize:14];
        tagFriendsTitle.backgroundColor = [UIColor clearColor];
        tagFriendsTitle.text = @"Who should see this? Tag them!";

        [headerView addSubview:tagFriendsTitle];

        //THIS IS WHERE I GET MY EXC_BAD_ACCESS error
        [headerView addSubview:self.sBar];

        [tagFriendsTitle release];

    }
    return headerView;

}

No estoy seguro de qué parte de mi código está causando el error, pero parece que la sBar se desasignó de la memoria cuando intento agregarla a la subvista del encabezado. Pero no estoy seguro de por qué necesitaba hacer clic en la barra de búsqueda varias veces antes de que eso suceda.

Así es como se ve en el iPhone, la barra de búsqueda forma parte de la vista de encabezado

enter image description here

preguntado el 22 de mayo de 12 a las 15:05

self.sBar ¿es una propiedad de retención o asignación? -

Estoy usando retener @propiedad (no atómica, retener) UISearchBar *sBar -

2 Respuestas

vaya a producto> editar esquemas> habilite objetos nszombie y vea cuál es el problema allí

contestado el 22 de mayo de 12 a las 15:05

Si se trata de una propiedad de asignación, probablemente debería cambiarla por una propiedad de retención. Y no olvide establecer la propiedad en nil en dealloc y viewDidUnload.

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.