0
我想在同一視圖中有2個pickerviews。它除了兩件事情以外。如果一個pickerview比另一個pickerview有更多的行,那麼當從pickerview中選擇具有更多項目的項目時,應用會崩潰。我還爲pickerviews創建了一個NSLog,並且控制檯顯示我一次選擇兩個項目,實際上我只處理一個pickerview。我知道這聽起來有點混亂,但我包含了所有的代碼。先謝謝你。兩個PickerViews保存查看問題?
列表和List2是NSMutableArrays
列表中有4項 list2中有5個項目
有錯誤:
*終止應用程序由於未捕獲的異常 'NSRangeException',原因是:「* - [NSCFArray objectAtIndex:]:index(4)beyond bounds(4)'
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView{
if([thePickerView isEqual:pickerView1 ]){
return 1;
}
else if([thePickerView isEqual:pickerView2]){
return 1;
}
else{
return 0;
}
}
-(NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component{
if([thePickerView isEqual:pickerView1 ]){
return [list count];
}
else if([thePickerView isEqual:pickerView2]){
return [list2 count];
}
else{
return 0;
}
}
-(NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if([thePickerView isEqual:pickerView1 ]){
return [list objectAtIndex:row];
}
else if([thePickerView isEqual:pickerView2]){
return [list2 objectAtIndex:row];
}
else{
return 0;
}
}
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSLog(@"Selected item %@. Index of selected item:%i", [list objectAtIndex:row], row);
NSLog(@"Selected item %@. Index of selected item:%i", [list2 objectAtIndex:row], row);
NSLog(@"Selected item %@. Index of selected item:%i", [list3 objectAtIndex:row], row);
if([thePickerView isEqual:pickerView1 ]){
//Do Something
}
else if([thePickerView isEqual:pickerView2 ]){
//Do Something
}
else if([thePickerView isEqual:pickerView3 ]){
//Do Something
}
}
我建議您學會更好地使用Xcode調試器。當您遇到這種錯誤時,調試器將幫助您準確追蹤程序失敗的代碼行。從那裏可以更容易地發現出了什麼問題 – pheelicks 2010-03-20 22:08:16