Pregunta

¿Cuáles son las diferencias y las implicaciones de las diferencias entre el impulso repetitivo proporcionado por Apple

     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
 NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
 // ...
 // Pass the selected object to the new view controller.
 [self.navigationController pushViewController:detailViewController animated:YES];
 [detailViewController release];

y este método (de PragProg el desarrollo del iPhone SDK libro) controlador del gabinete se añaden a la interfaz y @synthesize de aplicación:

  [self.navigationController pushViewController:self.cabinetController
                                       animated:YES];

Me atribuírselo a la novedad del SDK estoy trabajando con respecto al libro ... pero que parece muy diferente y parece implicar la propiedad muy diferente, si esa es la palabra correcta. Mi principal preocupación, si la pregunta es demasiado enrevesado de respuesta, es si o no uno de estos métodos es el más eficiente de la memoria.

EDIT: ok, bueno, después de limpiar mi visión mediante la publicación de esta pregunta ... yo no creo que haya que gran parte de la diferencia. la memoria asigna método repetitivo en la demanda, donde el método de libros hace que el gabinete de ver una propiedad. Creo que tiene el método repetitivo de alguna manera ... mejor o igual ... esa parte todavía estoy difusa sucesivamente. parece que ambos se libere de la misma manera, pero tal vez la memoria se lleva a cabo antes por el método de los libros.

¿Fue útil?

Solución

La versión de Apple es más eficiente de la memoria, ya que el detailViewController y de la vista se cancela la asignación cuando se hizo estallar de la pila del mando de navegación. A diferencia de la versión PragProg, que conserva la cabinetController en una variable de instancia (y por lo tanto evita que se desasignado), el código de Apple no está almacenando una referencia al controlador de detalle está creando.

La aplicación PragProg podría tener sentido si el usuario es probable que desplazarse con frecuencia de ida y vuelta entre el controlador de gabinete y el controlador de vista que se conserva, ya que evita un poco de CPU sobrecarga producida mediante la creación y desasignar los objetos en varias ocasiones, pero que tendría al perfil para ver si hay alguna diferencia significativa (lo que haría normalmente no).

Otros consejos

En el segundo caso, parecería que cabinetController es una propiedad de la clase indicada por uno mismo. En el repetitivo este no es el caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top