我的应用程序构建&完全在iOS 5.x中运行,但在iOS 6中调用selectRow:inComponent:animated:
UIPickerView
方法时崩溃了。
代码:
[_pickerview selectRow:1 inComponent:0 animated:NO];
我知道这个方法在我用Google搜索时在iOS6中不起作用,但我想知道其他方法来做这个效果吗?
答案 0 :(得分:7)
您的崩溃日志表明您在代码中使用了-1
,其中应该是{0,1}范围内的数字。但是在您粘贴的代码中,确实使用了1
。因此,您需要检查xxx
和yyy
[_pickerview selectRow:xxx inComponent:yyy animated:NO];
答案 1 :(得分:1)
以上答案是正确的,但是如果数组的值与选择器值不同,则会出现此错误。
这是我的代码
我以这种方式初始化:
amPmArray = [[NSMutableArray alloc] initWithObjects:@"AM",@"PM", nil];
我在选择器中设置了值:[picker selectRow:[amPmArray indexOfObject:currentTimeAMPMString] inComponent:5 animated:NO];
我总是在currentTimeAMPMString中获得小写值,例如&am; am,pm',而我的数组确实包含这种类型的项目,这就是我遇到崩溃错误的原因。
答案 2 :(得分:0)
经过3天的发现,我发现你是否正在使用选择器与textField相关联。 Plz无需为textField分配任何文本。 使用下面文本的原因意味着分配的测试应该存在于数组中。
[self-> pickerView selectRow:[self-> dataArray indexOfObject:self-> textField.text] inComponent:0 animated:NO];
使用这个。
[self-> pickerView selectRow:[self-> dataArray objectAtIndex:row] inComponent:0 animated:NO];