2011-10-25 39 views
5

我得到一個Data argument not used by format string錯誤,當我運行下面的代碼:IOS編程 - 數據的說法不使用的格式字符串

- (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 = 

謝謝 亞瑟

回答

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

是有問題的

應該

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

在這種情況下,格式說明用於打印的%@ 210。要打印數字,你需要使用類似%d的東西。 See complete documentation here.

+0

非常感謝,它解決了問題! – gadgetmo

0

回答@debuggerman是絕對正確的。但是,如果您使用[defaults setObject:colour forKey:@"colour」];而不是[defaults setObject:(colour) forKey:@"colour"];

請注意,我刪除了對象colour的括號。

+0

謝謝。我改變了它。 – gadgetmo

相關問題