Пикер, доступ к источнику данных? - PullRequest
0 голосов
/ 12 февраля 2010

Я только учусь, как настроить несколько сборщиков, и мне немного любопытно узнать о двух разделах ниже:

 // METHOD_001
 NSInteger row_001 = [doublePicker selectedRowInComponent:0];
 NSInteger row_002 = [doublePicker selectedRowInComponent:1];
 NSString *selected_001 = [pickerData_001 objectAtIndex:row_001];
 NSString *selected_002 = [pickerData_002 objectAtIndex:row_002];

EDIT_001:

Может быть, если я немного упросту это.... Я знаю, что делает METHOD_001, но как насчет метода ниже.Если я закомментирую его, мой код по-прежнему будет работать, но пользовательский интерфейс средства выбора не заполняется моими данными, поэтому он, очевидно, участвует в получении данных из источника данных, чтобы средство выбора могло их отобразить.Один загадочный аспект заключается в том, что он использует «objectAtIndex: row» для доступа к элементу, даже если весь пользовательский интерфейс требует заполнения (т. Е. Все строки). Значит ли это, что это вызывается для каждой строки, кажется забавным, что он неNSArray и заполнил пользовательский интерфейс сборщика за один выстрел?

// DELEGATE
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    if(component == kCoffeeIndex) return [pickerData_001 objectAtIndex:row];
    return [pickerData_002 objectAtIndex:row];
}

Гари

1 Ответ

1 голос
/ 13 февраля 2010

Метод делегата -pickerView:titleForRow:forComponent: будет вызываться каждый раз, когда пользовательский интерфейс считает, что данные необходимы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...