2011-10-25 10 views
5

tôi nhận được một lỗi Data argument not used by format string khi tôi chạy đoạn mã sau:ios lập trình - Lập luận Dữ liệu không được sử dụng bởi định dạng chuỗi

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

} 

tôi nhận được lỗi trên cả NSLog dòng. Ngoài ra, đây là những gì các bản ghi nói:

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

Cảm ơn bạn, Arthur

Trả lời

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

là vấn đề

Nên

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

Từ khoá định dạng trong trường hợp này là các %@ được sử dụng để in một object. Để in số bạn muốn sử dụng một cái gì đó như %d. See complete documentation here.

+0

cảm ơn rất nhiều, nó đã giải quyết được vấn đề! – gadgetmo

0

Trả lời từ @debuggerman là hoàn toàn chính xác. Nhưng bạn có thể cải thiện mã của mình nếu bạn sử dụng [defaults setObject:colour forKey:@"colour”]; thay vì [defaults setObject:(colour) forKey:@"colour"];

Lưu ý rằng tôi đã xóa dấu ngoặc đơn cho đối tượng colour.

+0

cảm ơn. Tôi đã thay đổi nó. – gadgetmo