これはおそらく非常に基本的な質問ですが、数時間の検索の後に私の問題を抱える人がいますが、私が見つけた解決策はありません。UIPickerView iosの問題 - 認識されていないセレクタ
私はAndroid開発とBlackberryアプリを書いていますが、私は自分の足を濡らしているだけなので、Objective-CはJavaのスイッチです。
まず第一に、私はそれにUIPickerViewで画面を開こうとすると、私はこのエラーメッセージを取得:
[のUIViewController numberOfComponentsInPickerViewを:]:認識されていないセレクタはインスタンスに0x4b4e0d0 2011-09-を送りました09 15:57:19.619のTabBar [4945:207]によりキャッチされない例外 'NSInvalidArgumentException'、理由にアプリを終了*: ' - [のUIViewController numberOfComponentsInPickerViewは:]:認識されていないセレクタがインスタンス0x4b4e0d0に送ら'
H EREは、私のヘッダファイルです:
#import <UIKit/UIKit.h>
@interface ThirdViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>{
UILabel *setUnits;
UIPickerView *pickerView;
NSMutableArray *pickItems;
}
@property (retain, nonatomic) UIPickerView *pickerView;
@property (retain, nonatomic) NSMutableArray *pickItems;
@end
そして、ここでは私の実装ファイルです:
#import "ThirdViewController.h"
@implementation ThirdViewController
@synthesize pickerView;
@synthesize pickItems;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView
{
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
pickItems = [[NSMutableArray alloc] init];
[pickItems addObject:@"Pounds"];
[pickItems addObject:@"Kilograms"];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1; //give components here
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component {
return [pickItems count]; //give rows here
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [pickItems objectAtIndex:row]; // give titles
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//Do the step here
}
- (void)dealloc {
[super dealloc];
}
@end
私がチェックした、とデリゲートとデータソースの両方がファイルの所有者に接続されています。何か不足していますか?
ありがとうございました。
私はIBのクラスをThirdViewControllerクラスに変更し、それを修正しました。ありがとう! – coder