崩潰我的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並且不在任何對象上調用retain/release,情況如何。我的_timesArray只包含從UIDatePicker獲得的NSDate對象。
我的堆棧跟蹤的樣子:
我insertPill樣子:
- (void)insertPill:(id)sender {
//[[NSNotificationCenter defaultCenter] postNotificationName:InsertPillNotification object:self];
[self clearView];
}
如果我不removeAllObjects,只是做:
NSMutableArray *emptyArray = [[NSMutableArray alloc] initWithCapacity:0];
self.timesArray = emptyArray;
這作品。但我仍然想知道爲什麼通過刪除它不起作用的對象。
編輯:我初始化viewDidLoad中的數組:
_timesArray = [[NSMutableArray alloc] initWithCapacity:0];
當我想要一個新的對象添加到數組,我這樣做:
NSMutableArray *tempUnsortedArray = [[NSMutableArray alloc] initWithArray:_timesArray];
[tempUnsortedArray addObject:_datePicker.date];
self.timesArray = tempUnsortedArray;
我不知道,如果我正在添加數組導致問題或不是。
你是否覆蓋timesterray的setter? – mprivat
如果你不調用getter,只是做[_timesArray removeAllObjects]會怎麼樣? – Joel
@mprivat不,我沒有重寫timesterray的setter。 – Crystal