从restkit反转数组提取会导致访问不良

时间:2015-03-26 01:37:25

标签: ios nsmutablearray exc-bad-access

我正在尝试以相反的顺序显示存储在从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);

我很难过。有任何想法吗?

1 个答案:

答案 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];