【问题标题】:Trouble with UIPickerViewUIPickerView 的问题
【发布时间】:2011-07-14 11:59:15
【问题描述】:

我完全被 UIPickerView 所困扰。我不断收到错误:

GDB:接收到的信号:“SIGABRT”。

2011-07-14 13:35:19.132 MeldStad[677:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIView numberOfComponentsInPickerView:]:发送了无法识别的选择器到实例 0xaac34c0'

我在互联网上阅读了一些解决方案,但没有一个对我有用.. 我还尝试了超过 1 个 PickerView 教程。不知道怎么办才知道。

这里是选择器方法的来源:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return [pickerData count];
}

- (NSString *)pickerView:
(UIPickerView *)pickerView titleForRow:
(NSInteger)row forComponent:(NSInteger)component
{
    return [pickerData objectAtIndex:row];
}

【问题讨论】:

  • 你是如何设置委托的,你在哪里添加了这些方法?
  • 好的,我认为现在连接很好。我按照本教程进行连接(步骤 6)。 roseindia.net/tutorial/iphone/examples/UIPickerView/… 错误消失了,但是当我尝试通过单击按钮来检索所选项目时,我什么也得不到。 NSInteger 行 = [singlePicker selectedRowInComponent:0]; NSString *selected = [pickerData objectAtIndex:row]; NSLog(@"test:", selected);
  • singlePicker 必须是 nil 即未在 IB 中连接。检查一下。
  • 非常感谢您的帮助,现在可以使用了 :)

标签: iphone xcode uipickerview uipickerviewcontroller


【解决方案1】:

错误是说您在 IB 中将 UIPicker 委托设置到没有 UIPickerDelegate 方法的 UIView

@interface YourViewController : UIViewController <UIPickerViewDelegate> 

或者您将代表分配到了错误的文件。检查 IB 连接设置。您的数据源和委托应设置为 FilesOwner

【讨论】:

  • 好的,我认为现在连接很好。我按照本教程进行连接(第 6 步)。roseindia.net/tutorial/iphone/examples/UIPickerView/… 错误消失了,但是当我尝试通过单击按钮检索所选项目时,我没有得到任何回复。 NSInteger 行 = [singlePicker selectedRowInComponent:0]; NSString *selected = [pickerData objectAtIndex:row]; NSLog(@"test:", selected);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多