我有一个父 NSManagedObject(Person),每个人都可以有警报,这也是一个 NSManagedObject。当我转到 Person 对象的详细视图查看警报时,我希望能够删除警报。我目前在表格中显示的内容:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *SimpleCellIdentifier = @"SimpleCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleCellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleCellIdentifier];
}
NSDate *theDate = [[self sortedTimes] objectAtIndex:indexPath.row];
cell.textLabel.text = [self.dateFormatter stringFromDate:theDate];
return cell;
}
- (NSMutableArray *)sortedTimes {
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:[self.person.alarms allObjects]]; // Alarm NSManagedObject
tempArray = [tempArray valueForKey:@"time"]; // NSDate value
return [[NSMutableArray alloc] initWithArray:[tempArray sortedArrayUsingSelector:@selector(compare:)]];
}
所以我想我可以通过这样做来删除最后一个对象:
[[self sortedTimes] removeLastObject];
[self saveContext];
但我相信我指向的不是实际的警报对象,因为我的 sortedTimes 可能不指向实际的警报集。我想知道在这种情况下我应该怎么做?谢谢!