我不明白为什么这段代码不起作用
我正在使用此委托方法来调整字体大小(我不费心展示它,因为它不相关)
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
这是一个多选择器。我有三个组件。当我使用 else 使用条件语句运行代码时,它使第 0 节与第 2 节匹配。我无法解释这一点
NSLog(@"%i", component); // only prints, 0, 1, 2
NSString *theString = @"";
if(component == 0){
theString = [_phosType objectAtIndex:row];
}
if(component == 1){
theString = [_quantity objectAtIndex:row];
} else { // THIS CAUSES PROBLEMS.
theString = [_units objectAtIndex:row];
}
pickerViewLabel.text = theString;
这个有效..什么给了!
NSLog(@"%i", component); // only prints, 0, 1, 2
NSString *theString = @"";
if(component == 0){
theString = [_phosType objectAtIndex:row];
}
if(component == 1){
theString = [_quantity objectAtIndex:row];
}
if(component == 2){ // THIS WORKS! BUT WHY?!
theString = [_units objectAtIndex:row];
}
pickerViewLabel.text = theString;
为什么我需要明确询问组件是否为 2?我可以看到当我的 NSLog 组件永远不等于 0 1 或 2 以外的任何值时。我在代码中的其他任何地方都使用了“else”并且遇到了问题。谁能解释一下?