我有一个从 api 调用填充的 NSMutable 数组,其中包含 31 个有效值。
正如我们所见,它有一个类对象的集合,其中有 4 个属性。它们中的每一个都有分配给它们的有效值。例如:dat、ancillary 等。这在 dispatch_aync 中。
在主队列中,我正在遍历 chart_data 但我 EXC_BAD_ACCESS 代码 = 1,当我尝试更深入地调试此事时。我发现我的 NSmutable 数组正在损坏。
这是我访问数组时的屏幕截图。
随机地址或值被分配给它,然后破坏我的代码,因为我期望双精度值和日期值。
在这 2 个事务之间没有对 chart_data 进行任何操作。知道为什么会发生这种情况。这开始突然发生,直到今天代码运行良好。
填充 Nsmutable 数组的代码
+(NSMutableArray*)GetData:(NSDictionary*)dataArray
{
daily_unit_Array = [[NSMutableArray alloc]init];
for (int i=0; i < 31; i++)
{
UnitCost *unit_cost = [[UnitCost alloc]init];
unit_cost.date = [keys objectAtIndex:i];
NSArray *unit_cost_value = [dataArray objectForKey:[keys objectAtIndex:i]];
unit_cost.val1 = [unit_cost_value valueForKey:@"val1"];
unit_cost.val2 = [unit_cost_value valueForKey:@"val2"];
unit_cost.val3 = [unit_cost_value valueForKey:@"val3"];
unit_cost.val4 = [unit_cost_value valueForKey:@"val4"];
[daily_unit_Array addObject:unit_cost];
}
return daily_unit_Array;
}
这将返回给调用它的函数并将其分配给 chart_data
PS:这是一个零星的问题,10 次出现 8 次。有时当我运行应用程序时,它会完美运行并向我展示我想要的。注意:只是一个注释。我昨天将我的 Xcode 更新到了 5.1 beta 4 版本。但我似乎不认为这会导致问题,因为我尝试在旧版本的 Xcode 中运行相同的代码,我可以重现该错误。