"Solucionado" Extraño "selector no reconocido enviado a instancia" crash ocurre en iOS8 beta5

Mi aplicación funciona bien en iOS7, pero falla en iOS8.

He visto varias preguntas sobre este tema, pero nunca he encontrado una buena solución para ello.

Tengo una aplicación que utiliza UITableViewController y UITableViewController tiene una instancia de búsqueda SearchDisplayController llamada m_searchDisplayController.

Cuando primero hago clic en la barra de búsqueda para search algo, la vista de tabla muestra el resultado y la barra de búsqueda renuncia al primer respondedor. Pero nuevamente hago clic en la barra de búsqueda, la aplicación falla:

-[MyFavoritesViewController _searchController]: unrecognized selector sent to instance 

Aquí está la stack:

introduzca la descripción de la imagen aquí

Luego trato de agregar el método _searchController a la class MyFavoritesViewController, así:

  - (UISearchDisplayController *)_searchController { return nil; } 

Entonces la aplicación funciona bien, excepto que el campo de text de la barra de búsqueda no puede estar ingresando. Por lo tanto, bash esto:

  - (UISearchDisplayController *)_searchController { return m_searchDisplayController; } 

Y otro post de locking muestra:

 -[UISearchDisplayController _searchBarShouldFinalizeBecomingFirstResponder]: unrecognized selector sent to instance 

No sé cómo encontrar el código de error, y cualquiera tiene una solución al respecto. Gracias por adelantado.

Mi situación:

Hago algo de pirateo en UISearchBar y cambio el delegado de textBield de searchBar a algún object. Originalmente, el método del sistema "_searchController" llamará al delegado del textField de searchBar, pero ahora llamará a mi object y luego se bloqueará. Espero que ayude.

Si está intentando responder al button que se está tocando al asignar un delegado al UISearchBar textField, este se rompe en iOS8. Prueba otra técnica.

Quizás el método UISearchBarDelegate

 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { // finetworking whenever the text is changed, or clear tapped if (searchText.length == 0) { // Do something } } 

Ahora, si necesita responder de manera diferente a una última tecla de espacio posterior, tendrá que resolver algunos problemas, como responder a una tecla de retroceso, o agregar un carácter invisible que el retroceso no puede eliminar, pero el claro se elimina. Estas son solo 2 sugerencias.

Tengo el mismo problema Compile su proyecto con SDK 8.0+ y el problema desaparecerá. No se requieren cambios de código.

Otra solución, no asigne UITextField que esté en el delegado UISearchBar y que funciones adicionales (si tiene) se muevan a otros lugares.