ios编程 – 格式string不使用的数据参数

当我运行下面的代码时,我得到了Data argument not used by format string错误Data argument not used by format stringData argument not used by format string

 - (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"]); } 

我得到两个NSLog行的错误。 另外,这里是日志说:

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

谢谢,亚瑟

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

是有问题的

应该

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

在这种情况下,格式说明符是用于打印object%@ 。 要打印数字,你可以使用类似%d东西。 在这里看完整的文档。

从@debuggerman回答是绝对正确的。 但是,如果您使用[defaults setObject:colour forKey:@"colour”];而不是[defaults setObject:(colour) forKey:@"colour"];则可以改进代码[defaults setObject:(colour) forKey:@"colour"];

请注意,我删除了对象colour的括号。