Pregunta

necesito para recargar una persona antes de NSManagedObject lo paso a la siguiente vista.

Esto es porque el fetchedResultsController que estoy usando sólo devuelve un subconjunto de atributos y necesito el conjunto completo en la siguiente vista.

Hasta el momento estoy intentando algo como:

- (void)tableView:(UITableView *)tableViewPassed didSelectRowAtIndexPath:(NSIndexPath *)indexPath {        
        Person *partialPerson = (Person *)[self.fetchedResultsController objectAtIndexPath:indexPath];

   NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:[partialPerson.managedObjectContext]];

    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    [request setEntity:entity];
...

Ahora me parece que no puede conseguir el predicado de hacerlo funcionar correctamente hasta ahora he intentado:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF == %@", partialPerson];

y

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF == %@", partialPerson.objectID];

Sin embargo, ninguno de estos parecen funcionar. ¿Qué estoy haciendo mal aquí? Es este un buen enfoque?

Gracias de antemano por cualquier sugerencia, Matt

¿Fue útil?

Solución

Sólo tiene que acceder a los atributos que no están criticado y que recibirán falla automáticamente. No es necesario que vuelva a recuperar el objeto en absoluto.

Actualizar

El almacenamiento de imágenes o datos binarios en base de datos tiene algunas reglas básicas a seguir:

< 100kb store it in the same entity
< 1 mb store it in a separate entity on the other end of a relationship
> 1 mb store it on disk and reference it in the same entity

Parece que usted está guardando demasiados datos binarios de la tabla principal. Para corregir esto sigue la regla arriba y se va a resolver su problema.

Pero eso no niega mi respuesta original en que se puede instruir a la obtención para tirar en atributo1, Attribute3 y el atributo 5 y cuando necesidad para acceder Attribute3, que acaba de acceder a ella y la voluntad de Datos Básicos "hacer lo correcto" y cargarlo cuando intenta y acceder a ella. Nunca hay una razón para "recargar" el objeto en esta situación.

Otros consejos

¿Por qué usted necesita refetch partialPerson?

Basta con pasar a la siguiente vista y ya está !!! Usted puede hacer todo lo que quiera con la variable partialPerson en la siguiente vista. No veo ninguna razón por la que necesita para que vuelva a recuperar.

myViewController.myPartialPerson = partialPerson;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top