我正在使用带有核心数据和 NSFetchedResultsController 的 UICollectionView。
选择一个单元格后,我想将其移动到集合视图顶部的不同部分。问题是该部分可能尚未添加。在将单元格移动到新部分之前,我基本上需要在选择单元格时添加一个新部分。
见下文 -
这可能吗?
我正在使用带有核心数据和 NSFetchedResultsController 的 UICollectionView。
选择一个单元格后,我想将其移动到集合视图顶部的不同部分。问题是该部分可能尚未添加。在将单元格移动到新部分之前,我基本上需要在选择单元格时添加一个新部分。
见下文 -
这可能吗?
看起来好像您以错误的方式处理此问题。如果我是你,我会尝试删除该对象,然后使用正确的部分键重新插入它。
因此,如果您的 NSManagedObject 的 section-key 为 1,则您需要在删除对象时在本地存储对象值。然后您可以使用存储的值创建一个新记录并将 section-key 更新为 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];
}