Ios UIpickerView不使用参数行号
这里是错误,我在其他问题中看到了: *由于未捕获的异常“NSRangeException”而终止应用程序,原因:'*-[NSMutableIndexSet AddIndexInsRange:]:范围{11529215046068470577,1}超过了NSNotFound的最大索引值-1' ***第一次抛出调用堆栈: 选择器可用并加载了数据。 我按下一个按钮转到特定的行。以下是按钮内的代码: 此代码正在运行:Ios UIpickerView不使用参数行号,ios,objective-c,uipickerview,Ios,Objective C,Uipickerview,这里是错误,我在其他问题中看到了: *由于未捕获的异常“NSRangeException”而终止应用程序,原因:'*-[NSMutableIndexSet AddIndexInsRange:]:范围{11529215046068470577,1}超过了NSNotFound的最大索引值-1' ***第一次抛出调用堆栈: 选择器可用并加载了数据。 我按下一个按钮转到特定的行。以下是按钮内的代码: 此代码正在运行: [Picker reloadAllComponents]; [Picker selec
[Picker reloadAllComponents];
[Picker selectRow:5 inComponent:0 animated:YES];
此代码不起作用
[Picker reloadAllComponents];
NSInteger Nnb = (NSInteger) self.Nbrow.text;
[Picker selectRow: **Nnb** inComponent:0 animated:YES];
为什么硬编码的数字可以工作,而不是动态数字
我看到这个问题:
还有委托的故事,但如果你编码一个数字,它就可以工作,而它不能与一个参数一起工作,这一事实似乎很疯狂
两种方法都已实现,但不要忘了这是一个数字:
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
问题在于这一行:
NSInteger Nnb = (NSInteger) self.brow.text;
您不能用这种方式将NSString
强制转换为NSInteger
。您可以使用NSString的方法来实现这一点:
NSInteger Nnb = [self.Nbrow.text integerValue];
你不能这样做:
NSInteger Nnb = (NSInteger) self.Nbrow.text;
并期待所需的数字。这样做的目的是将NSString
对象的指针转换为NSInteger
。它不会将文本字符串转换为其数值
您需要使用适当的方法将字符串转换为数字
NSInteger Nnb = [self.Nbrow.text integerValue];
顺便说一句-请学习使用正确的命名约定。变量和方法名称应以小写字母开头。类名应使用大写字母。您不能简单地将
NSString
强制转换为NSInteger
。这不是将字符串转换为数字的方式。不要将intValue
与NSInteger
一起使用。