3

我的应用程序完美地在 iOS 5.x 中构建和运行,但是当我在 iOS 6 中调用selectRow:inComponent:animated:方法时它崩溃了。UIPickerView

代码 :

[_pickerview selectRow:1 inComponent:0 animated:NO];

当我用谷歌搜索它时,我知道这个方法在 iOS6 中不起作用,但我想知道其他方法来做到这一点?

4

3 回答 3

9

您的崩溃日志显示您使用了-1in 代码,其中应该是 {0, 1} 范围内的数字。但是在您粘贴的代码中,您确实使用了1. 所以你需要检查你的xxx参数yyy

pickerView.selectRow(xxx, inComponent: yyy, animated: false)
于 2012-11-25T06:55:29.580 回答
1

以上答案是正确的,但是如果数组的值与选择器值不同,则会出现此错误。

这是我以这种方式初始化的代码: amPmArray = [[NSMutableArray alloc] initWithObjects:@"AM",@"PM", nil];

我在选择器中设置值:[picker selectRow:[amPmArray indexOfObject:currentTimeAMPMString] inComponent:5 animated:NO];

我总是在 currentTimeAMPMString 中得到小写值,比如'am,pm',而我的数组不包含这种类型的项目,所以这就是我遇到崩溃错误的原因。

于 2016-01-26T09:31:37.030 回答
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];

于 2017-09-16T10:11:49.323 回答