当我向核心数据实体添加新对象时,它不会在我的 uitableview 中进行动画处理。尝试了很多东西,为我的 if 语句添加了一个整数,以查看我的托管对象是否发生了变化,是的,它确实进入了 if 语句。我可以稍后调用 reloadData ,它会将丢失的单元格放在 tableview 中,但我当然想用动画来做到这一点。
我应该什么时候放置 insertRow 方法?我尝试了很多点,但我得到一个错误,我试图添加第五行,而更新后只有 4 行或其他东西。
- (void)insertNewObject
{
int count = [self.detailItem.catRelations count];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void)
{
NSManagedObjectContext *context = self.managedObjectContext;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Image" inManagedObjectContext:self.managedObjectContext];
newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setImageMetaData:localImageMetaData];
[newManagedObject setImageItself:localImageItself];
[newManagedObject setImageCreationDate:[NSDate date]];
[newManagedObject setImageName:localImageTitle];
newManagedObject.imageRelations = self.detailItem;
// Save the context.
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
dispatch_sync(dispatch_get_main_queue(), ^(void)
{
if (count != self.detailItem.catRelations.count)
{
NSIndexPath *path = [NSIndexPath indexPathForRow:count+1 inSection:0];
[imagesTV insertRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationLeft];
}
});
});