Я пытаюсь создать UIPickerview
, как описано в книге по разработке iPhone от Дейва Марка. У меня есть NSArray
, который объявлен как свойство в файле h, который будет хранить данные для UIPickerview
. Итак, вот что у меня есть:
в файле .h:
@interface RootViewController : UIViewController {
NSArray *dateForPicker;
}
@property (nonatomic, retain) NSArray *dateforPicker;
@end
В методе .m file viewDidLoad
(у меня есть @synthesize
для свойства dateForPicker
в начале файла .m ):
NSArray *tempArray = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
self.dateforPicker = tempArray;
[tempArray release];
Когда появляется UIPickerview
, во всех строках появляется "?" . Поэтому, когда я использовал точку останова для проверки значений tempArray и dateForPicker в методе viewDidLoad
, я обнаружил, что tempArray
в порядке, но dateForPicker
никогда не получает значения из tempArray
. Xcode говорит "Недопустимая сводка" для массива dateForPicker
и имеет "вне области действия " в качестве значений для пяти строк. Что здесь происходит? Как описано в книге, это должно работать.
Вот код для UIPickerView:
#pragma mark -
#pragma mark picker data source methods
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [dateforPicker count];
}
#pragma mark picker delegate methods
-(NSString *)pickView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
forComponent:(NSInteger)component{
return [dateforPicker objectAtIndex:row];
}
@end