У меня есть свойствоremoveAllObjects для NSMutableArray, заполняющий UITableView аварий с ARC
@property (nonatomic, strong) NSMutableArray *timesArray;
Он используется для заполнения данных в моем UITableView. Когда я хочу очистить свой взгляд, я делаю это:
- (void)clearView {
self.nameField.text = @"";
self.noteField.text = @"";
if ([_timesArray count] > 0) {
[self.timesArray removeAllObjects];
[self.customTableView reloadData];
}
}
Устранение сбоя. RemoveAllObjects вызывает сбой. Я не знаю, почему. Я огляделся, и много сообщений говорят о том, что объект переопределяется. Как это происходит, если я использую ARC и не вызываю сохранение/освобождение на каких-либо объектах. Мой _timesArray просто содержит объекты NSDate, которые я получаю от UIDatePicker.
Мой трассировки стека выглядит следующим образом:
Мои insertPill выглядит следующим образом:
- (void)insertPill:(id)sender {
//[[NSNotificationCenter defaultCenter] postNotificationName:InsertPillNotification object:self];
[self clearView];
}
Если я не removeAllObjects, и просто сделать:
NSMutableArray *emptyArray = [[NSMutableArray alloc] initWithCapacity:0];
self.timesArray = emptyArray;
Этот работает. Но мне все равно хотелось бы знать, почему, удалив объекты, он не работает.
Edit: я инициализировать массив в viewDidLoad:
_timesArray = [[NSMutableArray alloc] initWithCapacity:0];
Когда я хочу, чтобы добавить новый объект в массив, я делаю это:
NSMutableArray *tempUnsortedArray = [[NSMutableArray alloc] initWithArray:_timesArray];
[tempUnsortedArray addObject:_datePicker.date];
self.timesArray = tempUnsortedArray;
Я не уверен, если путь Я добавляю данные, которые массив вызывает проблему или нет.
Вы переопределили сеттер для timesArray? – mprivat
Что произойдет, если вы не вызываете геттер и просто выполняете [_timesArray removeAllObjects]? – Joel
@mprivat Нет Я не могу переопределить сеттер для timesArray. – Crystal