6

È sicuro supporre che un attributo, cioè fetchedResultsController, di chatViewController, un'istanza di una sottoclasse di UITableViewController, è sempre nil quando viewDidLoad è chiamato, assumendo che è impostato per nil in viewDidUnload? Accidenti!Quando viene chiamato viewDidLoad?

Se questo è il caso, non vedo la necessità immediata di ridefinire la funzione di accesso come nell'applicazione di esempio Xcode CoreDataBooks. Preferirei semplicemente inserire tutto il codice in viewDidLoad anziché in una funzione separata perché è l'unico posto in cui lo userò.

risposta

3

viewDidLoad viene chiamato dopo aver caricato la vista. Indipendentemente dal fatto che fetchedResultsController sia nullo o meno dipende da come viene avviato il viewController. Ad esempio, quando si crea il detailViewController, è possibile impostare il suo fetchedViewController prima viewDidLoad si chiama:

RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
    detailViewController.fetchedResultsController = fetchedResultsController; 

    [self.navigationController pushViewController:detailViewController animated:animated]; 
    [detailViewController release]; 

Detto questo, poi nil'ing fetchedResultsController in viewDidUnload garantirebbe che è pari a zero.

+0

Freddo. Grazie. Penso che la tua ultima frase abbia risposto alla mia domanda. Buono a sapersi! :) – ma11hew28

2

Si deve presupporre che viewDidLoad possa essere chiamato più volte. Se viene inviato un avviso di memoria, il controller della vista scaricherà la vista dalla memoria e la prossima volta che sarà necessario viewDidLoad verrà chiamato.

+2

Giusto per essere chiari, 'viewDidLoad' non verrà chiamato più volte consecutivamente. –

+2

Questo ha senso. Quindi, posso presumere che se imposto 'fetchedResultsController' in' viewDidLoad' e 'nil' in' viewDidUnload', allora non lo imposterò di nuovo inutilmente in 'viewDidLoad'? In altre parole, 'viewDidUnload' viene sempre chiamato prima di un'altra chiamata di' viewDidLoad', corretta? – ma11hew28

3

viewDidLoad Chiamato Questi Secnarion: -

1.when abbiamo spingere il controller della vista dopo la creazione è oggetto segue o stoary bordo id.

2.it ha chiamato più di uno nel caso di creazione dell'istanza più tempo nell'applicazione e lo spinge ancora e ancora.per esempio: -se si implementa come coaursal (che ha richiesto un controller aggiuntivo durante lo scorrimento) come se fosse necessario in modo che possa chiamare più volte viewDidLoad.

3.it chiamato quando tutte le istanze di memoria (uiviewcontroller e la sua sottoclasse sono istanziate) che significa quando la nostra vista è pronta per caricare in memoria con l'indirizzo.

4.Ricorda solo oggetto figlio classe class controller creato..parent oggetto classe mai istanziato durante il normale Secnarion.

0

viewDidLoad viene chiamato solo quando la vista viene istanziata per la prima volta. Se non si ricrea il controller della vista ogni volta nell'applicazione, verrà richiamato solo una volta (e richiamato se si riceve un avviso di memoria e la vista non è visualizzata).