[NSNull length]:发送到实例的无法识别的选择器

时间:2015-06-08 10:43:29

标签: ios

我在视图控制器中使用了三个选择器视图,在拾取器视图数据源中使用了我的代码

-(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]错误。

2 个答案:

答案 0 :(得分:2)

您显然会收到该错误,因为您向NSNull类型的对象发送消息。在Xcode中设置异常断点以查找发送消息的对象,然后找出该对象为NSNull类型的原因。

典型的原因是不小心解析JSON代码。

答案 1 :(得分:1)

titleForRow:NSString中的返回类型,因此您无法返回0. Yopu必须返回return nilreturn @""