【问题标题】:UIPickerView Runtime Error Unrecognized selector sent to instance [closed]UIPickerView运行时错误无法识别的选择器发送到实例[关闭]
【发布时间】:2013-06-05 15:29:04
【问题描述】:

我正在尝试将 UIPickerView 放在应用程序导航栏中的 Popover 视图中。当我点击将打开弹出框的按钮时,出现以下错误:

-[PopoverView pickerView:numberOfRowsInComponent:]: unrecognized selector sent to instance 0x75577f0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PopoverView pickerView:numberOfRowsInComponent:]: unrecognized selector sent to instance 0x75577f0'

这是我的 .h 文件中的内容:

#import <UIKit/UIKit.h>

@interface PopoverView : UIViewController {
    IBOutlet UIPickerView *pickerView;
    NSMutableArray *pickerArray;
}

@end

这是我的 .m 文件:

#import "PopoverView.h"

@interface PopoverView ()

@end

@implementation PopoverView

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

  // initalizes and allocates the array that holds the values for the picker
  pickerArray = [[NSMutableArray alloc] init];

  //adds the values to the array
  [pickerArray addObject:@"Blue"];
  [pickerArray addObject:@"Green"];
  [pickerArray addObject:@"Orange"];
  [pickerArray addObject:@"Pink"];
  [pickerArray addObject:@"Purple"];
  [pickerArray addObject:@"Red"];

  [pickerView selectRow:0 inComponent:0 animated:NO];
}

- (NSInteger)numberOfComponentsInPickerView:(NSInteger)component {

  return 1;

}

-(NSInteger)pickerView:(UIPickerView *)picker numberofRowsInComponent:(NSInteger)component{

  return [pickerArray count];

}

- (NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent:(NSInteger)component{

  return [pickerArray objectAtIndex:row];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

这是否是由于我试图在我的 PopoverView 类中创建选择器和数组而不是包含按钮操作代码的类?

【问题讨论】:

    标签: ios objective-c ipad uipickerview uipopovercontroller


    【解决方案1】:

    你有错别字

    -(NSInteger)pickerView:(UIPickerView *)picker numberofRowsInComponent:(NSInteger)componen
                                                HERE ---^
    

    方法。应该是numberOfRowsInComponent,大写“O”。

    【讨论】:

    • 哇,我不敢相信我错过了哈哈。这解决了问题!谢谢!
    • 啊哈,我试图找到错字,你的速度更快;)。还有 Rygarth,你应该让 PopoverView 明确地实现 UIPopoverControllerDelegate@interface PopoverView : UIViewController &lt;UIPopoverControllerDelegate&gt;
    • 好的,我也会添加。谢谢纪尧姆A
    • @GuillaumeA:抱歉 :-) - 在这种情况下不应该是 &lt;UIPickerViewDataSource&gt; 吗?
    • 你说得对。
    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多