Quand viewDidLoad appelé?
-
08-10-2019 - |
Question
Est-il raisonnable de supposer qu'un attribut, à savoir fetchedResultsController
, de chatViewController
, une instance d'une sous-classe de UITableViewController
, est nil
toujours quand viewDidLoad
est appelé, en supposant qu'il est mis à nil
en viewDidUnload
? Ouf!
Si tel est le cas, alors je ne vois pas de besoin immédiat de redéfinir la fonction accesseur comme dans les CoreDataBooks d'application exemple Xcode. Je préfère tout simplement mettre tout ce code dans viewDidLoad
au lieu d'une fonction distincte parce que c'est le seul endroit où je vais l'utiliser.
La solution
viewDidLoad est appelée après votre point de vue est chargé. Que ce soit ou non fetchedResultsController est nul ou ne dépend pas de la façon dont l'viewController est initialisé. Par exemple, lors de la création du detailViewController
, vous pouvez définir son fetchedViewController
avant viewDidLoad
est appelé:
RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
detailViewController.fetchedResultsController = fetchedResultsController;
[self.navigationController pushViewController:detailViewController animated:animated];
[detailViewController release];
Cela dit, nil'ing fetchedResultsController en viewDidUnload serait alors assurer qu'il est nul.
Autres conseils
viewDidLoad Appelé dans ces Secnarion: -
1. Lorsque nous poussons le contrôleur de vue après l'avoir créé son objet par Segue ou par identifiant de la carte stoary.
2.it appelé plus d'un dans le cas de la création par exemple plus de temps dans l'application et le pousser à nouveau et again.for exemple: -si vous implémentez comme coaursal (qui ayant requis au contrôleur supplémentaire pendant le défilement) comme cela, il est nécessaire il peut donc appelé plusieurs fois viewDidLoad.
3.it appelée lorsque toutes les instances de la mémoire (UIViewController et sous-classe de ce instanciées) Cela signifie que lorsque notre point de vue est prêt à charger en mémoire avec l'adresse.
4.Remember seul objet de contrôleur de classe enfant est objet de classe created..parent jamais été utilisée lors de la Secnarion normale.
Vous devez supposer que viewDidLoad peut être appelé plusieurs fois. S'il y a un ENVOYÉ avertissement de mémoire, votre contrôleur de vue déchargera la vue de la mémoire, et la prochaine fois, il est nécessaire viewDidLoad sera appelée.
viewDidLoad
est appelée uniquement lorsque la vue est instancié pour la première fois. Si vous n'êtes pas recréer le contrôleur de vue chaque fois dans votre application, vous ne l'obtenez appelé une fois (et appelé à nouveau si vous obtenez un avertissement de mémoire, et la vue est nil'd out).