iPhone Xcode 4 picker Источник данных - PullRequest
0 голосов
/ 30 марта 2011

Это кажется несколько глупым вопросом, но после обновления до Xcode 4 метод, который я часто использую, не работает. Я занимаюсь настройкой источника данных для средства выбора в .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 перед загрузкой приложения. ..

Может кто-нибудь объяснить это мне? Я не понимаю, как проекты, которые я ранее встроил в Xcode 3, используя этот метод, компилируются и нормально работают в Xcode 4, но любые новые проекты, которые я пытаюсь сделать, не работают?

Большое спасибо

Sam

1 Ответ

1 голос
/ 30 марта 2011

Оказывается, теперь вам нужно включить в файл реализации следующие функции ...

- (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];
}

Теперь работает!

...