コアデータとNSFetchedResultsControllerでUICollectionViewを使用しています。
セルが選択されたら、コレクションビューの上部にある別のセクションに移動します。問題は、セクションがまだ追加されていない可能性があることです。基本的に、セルを新しいセクションに移動する前に、セルが選択されたときに新しいセクションを追加する必要があります。
下記参照 -
これは可能ですか?
コアデータとNSFetchedResultsControllerでUICollectionViewを使用しています。
セルが選択されたら、コレクションビューの上部にある別のセクションに移動します。問題は、セクションがまだ追加されていない可能性があることです。基本的に、セルを新しいセクションに移動する前に、セルが選択されたときに新しいセクションを追加する必要があります。
下記参照 -
これは可能ですか?
あなたがこれを間違った方法で行っているように見えます。もし私があなたなら、オブジェクトを削除してから、正しいセクションキーを使用して再挿入しようとします。
したがって、NSManagedObjectのセクションキーが1の場合、オブジェクトを削除する間、オブジェクトの値をローカルに保存する必要があります。次に、保存された値を使用して新しいレコードを作成し、セクションキーを0に更新できます。
これにより、古いセルが削除され、新しいセクションに新しいセルが挿入されます。
下記参照 -
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSManagedObject *obj = [_fetchedResultsController objectAtIndexPath:indexPath];
NSString *name = obj.name;
[self.managedObjectContext deleteObject:task];
NSError *error = nil;
[self.managedObjectContext save:&error];
NSManagedObject *newObj = [NSEntityDescription insertNewObjectForEntityForName:@"entityName" inManagedObjectContext:self.managedObjectContext];
[newObj setValue:name forKey:@"name"];
[self.managedObjectContext newObj];
error = nil;
[self.managedObjectContext save:&error];
}