这似乎是一个有点愚蠢的问题,但由于升级到Xcode4,我经常使用的一种技术不起作用。我正在讨论如何在.xib中设置选取器的数据源
以前的情况是在头文件中声明以下内容...
@interface testViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
UIPickerView *singlePicker;
NSArray *pickerData;
}
@property (nonatomic,retain) IBOutlet UIPickerView *singlePicker;
@property (nonatomic,retain) NSArray *pickerData;然后在主'viewDidLoad‘中设置数据源,这样...
- (void)viewDidLoad
{
NSArray *array = [[NSArray alloc] initWithObjects:@"Small", @"Medium", @"Long", nil];
self.pickerData = array;
[array release];
[super viewDidLoad];
}然后将文件的所有者连接到选择器,选择器的数据源,并将代理出口连接到文件的所有者,但是当我将选择器的数据源出口连接到文件的所有者时,我在应用程序加载之前得到了一个SIGABRT错误...
有人能给我解释一下吗?我不明白我以前在Xcode3中使用这种方法构建的项目在Xcode4中编译和运行得很好,但是我尝试创建的任何新项目都不能工作吗?
非常感谢
相同的
发布于 2011-03-31 03:10:32
事实证明,您现在必须在实现文件中包含以下函数...
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [pickerViewArray count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [self.pickerViewArray objectAtIndex:row];
}它现在起作用了!
https://stackoverflow.com/questions/5490486
复制相似问题