Possible exceptions in subnets, e.g. Range {2147483647, 1} exceeds maximum index value of NSNotFound – 1
Wrap the statements in the method didSelectRow that set the rows in the picker in a try-catch block.
You may do that in all four case statements.
e.g
@try{
[_subnetsPicker selectRow:[_subnet_array indexOfObject:[NSString stringWithFormat:@"%i",subnets_val]] inComponent:0 animated:YES];
[_subnetsPicker selectRow:[_mask_bits_array indexOfObject:[NSString stringWithFormat:@"%i",mask_bits_val]] inComponent:1 animated:YES];
[_subnetsPicker selectRow:[_host_bits_array indexOfObject:[NSString stringWithFormat:@"%i",host_bits_val]] inComponent:2 animated:YES];
[_subnetsPicker selectRow:[_hps_array indexOfObject:[NSString stringWithFormat:@"%i",hps_val]] inComponent:3 animated:YES];
}
@catch(NSException *e){
NSLog(@"error %@",e);
}