Массив исчезает - PullRequest
       1

Массив исчезает

0 голосов
/ 15 июля 2010

Я в представлении, которое имеет UIPickerView.Вот где я делаю свой sortedArray.

- (void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];

   NSMutableArray *studentNames = [[NSMutableArray alloc] init];

   for (Student *student in course.students)
      [studentNames addObject:student.name];

   sortedArray = [studentNames sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

   [picker selectRow:(kRowMultiplier*sortedArray.count)/2 inComponent:0 animated:NO];
}

Я могу сделать NSLog([sortedArray componentsJoinedByString:@", "]); в этих двух методах, и он работает :

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

и

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

но когда я делаю ту же самую трассировку в этом методе, она не работает (она падает):

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

Я не понимаю, почемуsortedArray работает везде, но в этом одном методе.

1 Ответ

0 голосов
/ 15 июля 2010

Из документации sortedArrayUsingSelector::

Новый массив содержит ссылки на элементы получателя, а не их копии.

Возможно, исходные строки уже освобождены?

Кстати, я вижу, что вы не устраняете studentNames - утечку памяти ...

...