No se puede leer y guardar un número desde / en una .Plist
-
21-09-2019 - |
Pregunta
He creado una lista de propiedades con el nombre propertys.plist. Entonces escribí esto:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"speicherung.plist"];
NSMutableArray *plistData = [[NSMutableArray arrayWithContentsOfFile:finalPath] retain];
int a = [[plistData objectAtIndex:1] intValue];
NSLog(@"%i", a); // returns always 0 - Even If I set a other number in the plist
a = a + 1;
NSNumber *ff = [NSNumber numberWithInt:a];
[plistData insertObject:ff atIndex:1];
NSLog(@"%@", [plistData objectAtIndex:1]); // returns 1 - right, because 0 + 1 = 1
[plistData writeToFile:finalPath atomically:YES];
Al ejecutar este código de nuevo, siempre me dan el número 0 en la primera NSLog y número 1 en la segunda. ¿Por qué?
Este código es para el iPhone.
Solución
[plistData objectAtIndex:1];
Este es un NSNumber. Por lo que la dirección de este objeto ObjC se convierte en un entero y se asigna a a
, dando el valor extraña. Utilice -intValue
para extraer un número entero de ella.
int a = [[plistData objectAtIndex:1] intValue];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow