私は親 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 が実際の Alarms セットを指していない可能性があるため、実際の Alarm オブジェクトではないことを指摘していると思います。こんな時どうしたらいいの?と思いました。ありがとう!