Dans l' UIViewController
de la documentation sur l' searchDisplayController
de la propriété 1 , il est dit:
Si vous créez votre recherche de contrôle de l'affichage de la programmation, cette propriété est définie automatiquement par la recherche de contrôle de l'affichage lorsqu'il est initialisé.
Et quand j'ai créer mon UISearchDisplayController ainsi:
[[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self] autorelease];
-[UIViewController searchDisplayController]
n'est nil
. Cependant, il est annulé après l'événement boucle se termine, ce qui provoque la recherche de contrôle de l'affichage de ne pas le montrer quand je touche à l'intérieur de la barre de recherche. Rien ne se bloque. C'est très bizarre. Si je omettre l'appel à autorelease
, tout fonctionne:
[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
Cependant, les fuites de l' UISearchDisplayController
(j'ai vérifié cela avec des Instruments). Depuis l' searchDisplayController
propriété est marqué comme (nonatomic, retain, readonly)
- je attendre qu'elle conserverait l' UISearchDisplayController
après elle est définie.
Cette stackoverflow article est lié.