Сначала добавьте эту функцию:
#define row_to_array_index(row) row%[YourArrayOfRowValues count]
при условии, что вы NSArray с именем YourArrayOfRowValues, который содержит текст для каждой строки.
Затем, в вашем методе - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
, верните большое число (например, 10000), а в вашем методе - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
, верните (при условии, что только 1 компонент)
Там не будет производительности или памяти. Ни один пользователь никогда не попытается пройти 10 000 строк, поверьте мне. И когда окно будет перезагружено, выберите те же данные, ближайшие к середине.