Pregunta

En el siguiente código, intento leer los datos de un plist:

 -(void)readPreferences 
    {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSMutableArray * myAppDefaults  = [defaults mutableArrayValueForKey:@"LastList"];
        myCustomObject * savedObject;
        NSUInteger i;
        for (i = 0; i < [myAppDefaults  count]; i++) 
        {
            NSArray * thisArray = [myAppDefaults  objectAtIndex:i];

            savedObject.value1 = [thisArray objectAtIndex:0];
            savedObject.value2 = [thisArray objectAtIndex:1];
            savedObject.value3 = [thisArray objectAtIndex:2];
            savedObject.value4 = [myAppDefaults  objectAtIndex:3];

            [objectsArray addObject:savedObject];
        }

    }

De alguna manera, cuando intento establecer " savedObject.value1 " ;, obtengo un " EXC_BAD_ACCESS " error.

Me doy cuenta de que es muy probable que sea una gestión básica de la memoria o un tipo de confusión de puntero / objeto, pero todavía estoy aprendiendo. Espero que alguien pueda ayudarme aquí. Atentamente Sjakelien

¿Fue útil?

Solución

No ha inicializado savedObject en el momento en que configuró la propiedad value1 . Deberá agregar:

savedObject = [[myCustomObject alloc] init];

antes de su bucle for para que sea un objeto válido en el que pueda establecer propiedades.

Otros consejos

No veo mutableArrayValueForKey en NSUserDefaults . Pruebe arrayForKey: en su lugar, eso le dará NSArray * .

Parece que los valores devueltos por los valores predeterminados de son inmutables (tiene sentido ya que está obteniendo cosas del archivo).

Verifique el valor devuelto desde mutableArrayValueForKey , sospecho que es nulo.

En una segunda mirada, su código no tiene mucho sentido. En ningún momento asigna objetos guardados, pero lo inserta repetidamente en la matriz. Incluso la forma en que extrae los valores no parece correcta.

Sugeriría mirar la referencia NSUserDefautls en la documentación de Apple, tiene ejemplos de uso básico.

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