UICollectionView NSFetchedResultsController创建部分并将项目移动到其中

时间:2013-01-23 13:29:47

标签: objective-c core-data nsfetchedresultscontroller uicollectionview

我正在使用带有核心数据的UICollectionView和NSFetchedResultsController。

当选择单元格时,我想将其移动到集合视图顶部的不同部分。问题是该部分可能尚未添加。在将单元格移动到新部分之前,我基本上需要在选择单元格时添加新部分。

见下文 -

enter image description here

这可能吗?

1 个答案:

答案 0 :(得分:1)

看起来好像你是以错误的方式解决这个问题。如果我是你,我会尝试删除该对象,然后使用正确的部分键重新插入。

因此,如果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];
}