Xcode4 numberOfRowsInComponent中的selectedRowInComponent崩溃

Xcode4 numberOfRowsInComponent中的selectedRowInComponent崩溃,xcode4,uipickerview,Xcode4,Uipickerview,我在使用Xcode(4.4.1)编程创建的pickerView中有两个组件 我认为没有必要转储所有与此pickerView相关的代码,因为我知道它在哪里崩溃 pickerView在模拟器中就像一个魔咒,但当我在iPhone设备(5.1.1)中测试它时,它以以下方式崩溃: - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ if (component =

我在使用Xcode(4.4.1)编程创建的pickerView中有两个组件

我认为没有必要转储所有与此pickerView相关的代码,因为我知道它在哪里崩溃

pickerView在模拟器中就像一个魔咒,但当我在iPhone设备(5.1.1)中测试它时,它以以下方式崩溃:

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
  if (component == 0) return [array1 count];
  if (component == 1) {
    NSLog(@"selectedRowInComponent:%i",[pickerView selectedRowInComponent:1]); //CRASHES HERE
    return [[array2 objectAtIndex:[pickerView selectedRowInComponent:1]] count];
  }
}
它认为有以下错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

正如我所说,如果在模拟器中测试(没有问题),如果在设备中测试(崩溃)

您确定它在您指示的行上崩溃,而不是在它后面的行上崩溃吗


模拟器和真实设备之间的区别在于,文件系统在真实设备上区分大小写,但在模拟器中不区分大小写。如果从文件加载选择器的数据,并且错误地指定了案例,则可能会导致问题。我见过很多人犯过这样的错误。查看
array2
并确保它包含您认为它的功能。

您确定它在您指示的行上崩溃,而不是在它后面的行上崩溃吗


模拟器和真实设备之间的区别在于,文件系统在真实设备上区分大小写,但在模拟器中不区分大小写。如果从文件加载选择器的数据,并且错误地指定了案例,则可能会导致问题。我见过很多人犯过这样的错误。查看
array2
,确保它包含您认为它的功能。

有相同的问题。。。只在ios8上崩溃。 奇怪的是,我在恢复组件时遇到了这个问题。(反转0和1)


将[pickerView SelectedRowUncomponent:1]替换为保存当前选定行的属性,因为存在并发问题,该问题与当前选定行相同。。。只在ios8上崩溃。 奇怪的是,我在恢复组件时遇到了这个问题。(反转0和1)

将[pickerView SelectedRowUncomponent:1]替换为保存当前选定行的属性,因为存在并发问题

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'