我正在尝试以相反的顺序显示存储在从tableView上的restkit fetch初始化的数组中的数据,然后删除所选项。
最初设置的代码工作正常(非反转),设置如下:
arrScans = [[NSMutableArray alloc]initWithArray: [context executeFetchRequest:myScans error:&error]];
但是当我尝试访问(已排序)数组时,我得到了一个糟糕的访问权限。
以下是加载排序数据的代码:
arrScansOrig = [[NSMutableArray alloc]initWithArray: [context executeFetchRequest:myScans error:&error]];
arrScans = [NSMutableArray arrayWithCapacity:[arrScansOrig count]];
NSEnumerator *enumerator = [arrScansOrig reverseObjectEnumerator];
for (id element in enumerator) {
[arrScans addObject:element];
}
NSLog(@"arrScans: %@",arrScans);
然后,当我尝试删除项目时(切换到编辑视图,选择,单击“删除”按钮“,arrScans访问错误的内存位置。
-(void)btnDelete
{
NSLog(@"arrScans: %@",arrScans);
我很难过。有任何想法吗?
答案 0 :(得分:0)
我应该早点考虑过,但我并没有试图找出实际数组条目中的内容 - 数据库行或代表它们的对象。虽然我仍然没有确切地知道他们的样子,但我确实尝试过#34;深度"复制 - 它工作。
以下是代码:
//需要以相反的顺序显示
arrScansOrig = [[NSMutableArray alloc]initWithArray: [context executeFetchRequest:myScans error:&error]];
NSArray *myArray = [[arrScansOrig reverseObjectEnumerator] allObjects];
NSMutableArray *myMutableArray = [myArray mutableCopy];
arrScans = [[NSMutableArray alloc] initWithArray: myMutableArray];