新しいオブジェクトをコア データ エンティティに追加すると、uitableview にアニメーション化されません。多くのことを試し、if ステートメントに整数を追加して、管理対象オブジェクトに変更があったかどうかを確認しました。はい、if ステートメントに含まれます。後で reloadData を呼び出すことができ、欠落しているセルをテーブルビューに配置しますが、もちろんアニメーションでそれを行いたいです。
insertRow メソッドをいつ配置する必要がありますか? 私は多くの時点で試しましたが、更新後に 4 行しかないのに 5 行目を追加しようとしているというエラーが表示されます。
- (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];
}
});
});