数组消失

时间:2010-07-14 20:26:51

标签: iphone uipickerview

我在一个有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 :(得分:0)

来自sortedArrayUsingSelector:的文档:

  

新数组包含对接收者元素的引用,而不是它们的副本。

也许原来的字符串已经发布了?

顺便说一句,我看到你没有释放studentNames - 内存泄漏......