2011-10-25 7 views
5

consigo un error Data argument not used by format string cuando corro el siguiente código:ios programación - argumento datos no utilizado por cadena de formato

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 

NSString *colour = ([colourArray objectAtIndex:row]); 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

[defaults setObject:(colour) forKey:@"colour"]; 

NSLog(@"NSString =", colour); 
NSLog(@"NSUserDefaults =", [defaults objectForKey:@"colour"]); 

} 

consigo el error en ambas líneas NSLog. Además, aquí es lo que dice el registro:

2011-10-25 09:01:50.260 Random[35636:b303] NSString = 
2011-10-25 09:01:50.260 Random[35636:b303] NSUserDefaults = 

Gracias, Arthur

Respuesta

17
NSLog(@"NSString = ", colour);  
NSLog(@"NSUserDefaults =", [defaults objectForKey:@"colour"]); 

es problemático

Debe ser

NSLog(@"NSString = %@", colour); 
NSLog(@"NSUserDefaults = %@", [defaults objectForKey:@"colour"]); 

El especificador de formato en este caso es el %@ que se utiliza para imprimir un object. Para imprimir números, usaría algo como %d. See complete documentation here.

+0

muchas gracias, ¡resolvió el problema! – gadgetmo

0

Respuesta de @debuggerman es absolutamente correcto. Pero puede mejorar su código si usa [defaults setObject:colour forKey:@"colour”]; en lugar de [defaults setObject:(colour) forKey:@"colour"];

Tenga en cuenta que eliminé los paréntesis para el objeto colour.

+0

gracias. Lo he cambiado – gadgetmo

Cuestiones relacionadas