我在视图控制器中使用了三个选择器视图,在拾取器视图数据源中使用了我的代码
-(NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component{
if (pickerView == _pickerMPurity)
{
return [myObject count];
}
if (pickerView == _pickerDPurity) {
return [myObject1 count];
}
if (pickerView == _pickerSize) {
return [myObject2 count];
}
return YES;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:
(NSInteger)row forComponent:(NSInteger)component{
if (pickerView == _pickerMPurity)
{
NSString *str = [[myObject objectAtIndex:row]valueForKey:@"purityname"];
//return [[myObject objectAtIndex:row]valueForKey:@"purityname"];
return str;
}
if (pickerView == _pickerDPurity) {
return [myObject1 objectAtIndex:row];
}
if (pickerView == _pickerSize) {
return [myObject2 objectAtIndex:row];
}
return 0;
}
我的问题是我在titleForRow方法中遇到[NSNull length]错误。
答案 0 :(得分:2)
您显然会收到该错误,因为您向NSNull类型的对象发送消息。在Xcode中设置异常断点以查找发送消息的对象,然后找出该对象为NSNull类型的原因。
典型的原因是不小心解析JSON代码。
答案 1 :(得分:1)
titleForRow:NSString
中的返回类型,因此您无法返回0. Yopu必须返回return nil
或return @""