gpt4 book ai didi

ios - 尝试重新排序 NSMutableArray 时出现运行时异常

转载 作者:行者123 更新时间:2023-12-01 18:18:01 25 4
gpt4 key购买 nike

我有一个 UITableViewController,它显示了存储在核心数据中的用户定义的收藏夹列表。当表格 View 加载时,托管对象被放置在一个可变数组中。要构造可变数组,我使用以下静态方法(在单独的类中):

+(NSMutableArray*)getAllFavorites{
NSManagedObjectContext *context = [[FavesDataModel sharedDataModel] mainContext];
NSFetchRequest *fetchReq = [[NSFetchRequest alloc] init];

NSSortDescriptor *sortByIndex = [[NSSortDescriptor alloc] initWithKey:@"index" ascending:YES];
[fetchReq setSortDescriptors:[NSArray arrayWithObject:sortByIndex]];

NSEntityDescription *entity = [NSEntityDescription entityForName:[Favorite entityName] inManagedObjectContext:context];
[fetchReq setEntity:entity];

NSError *err = nil;
return (NSMutableArray*)[context executeFetchRequest:fetchReq error:&err];
}

在我的表格 View 中,我需要允许用户重新排序行。我已经验证了我最喜欢的托管对象的可变数组是完整的,但是,当我尝试删除给定索引处的对象时,在运行时会引发异常(-[_PFArray removeObjectAtIndex:]: unrecognized selector sent to instance) .这是导致异常的代码:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
[self setEditing:YES animated:YES];
NSInteger rowIndex = fromIndexPath.row;
Favorite *fave = [allFavoriteObjects objectAtIndex:rowIndex];

[allFavoriteObjects removeObjectAtIndex:rowIndex]; // exception thrown here
[allFavoriteObjects insertObject:fave atIndex:toIndexPath.row];
}

有什么建议么?谢谢!

最佳答案

NSManagedObjectContext 的 executeFetchRequest 可能返回 不可变 大批。试试这个。

return [[context executeFetchRequest:fetchReq error:&err] mutableCopy];

关于ios - 尝试重新排序 NSMutableArray 时出现运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com