Как оптимизировать вид выбора в iPhone? - PullRequest
0 голосов
/ 25 февраля 2010

Я хочу, чтобы в моем окне выбора было отображено 1 - 200. Но я думаю, что это слишком много памяти, если я назначу массив в этом виде:

self.myLargeView = [[NSArray alloc] initWithObjects:@"1 unit", @"2 units", .... ..., @"199 units" @"200 units", nil]; //code skipped 

Как уменьшить нагрузку на память в приложении? есть идеи?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

Если вы хотите, чтобы в вашем окне выбора просто отображалось увеличенное число, вы можете использовать что-то вроде этого:

#define kPickerValuesAmount 200

#pragma mark -
#pragma mark UIPickerViewDataSource methods

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;   
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return kPickerValuesAmount;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return [NSString stringWithFormat:@"%i unit%@", (row + 1), (row == 0 ? @"" : @"s")];
}
0 голосов
/ 25 февраля 2010

Массив из 200 коротких строк NSStt не вызовет проблем с памятью. Это занимает всего несколько килобайт.

0 голосов
/ 25 февраля 2010

Если пользователь должен просто выбрать число от 1 до 200, почему бы не использовать вместо него UISlider?

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