2

我似乎无法找到问题所在。这是我的代码:

NSMutableArray *sortedActivities = [NSMutableArray arrayWithCapacity:self.trainingSession.activities.count];
for (ManagedActivity *activity in self.trainingSession.activities)
    [sortedActivities insertObject:activity atIndex:[activity.activityIndex unsignedIntegerValue]];

如您所见,我想通过活动中名为 activityIndex 的属性对活动集(这是 trainingSession 中的关系)进行排序。活动的索引总是从 0 开始,这意味着没有一个索引超过 trainSession.activities.count-1。

我通过分配具有适当容量的 NSMutableArray 来进行排序,然后迭代活动(一次)并将它们插入到正确的索引中。出于某种我不知道的原因,我收到了这个错误:

由于未捕获的异常“NSRangeException”而终止应用程序,原因:“ * -[__NSArrayM insertObject:atIndex:]: index 2 beyond bounds for empty array”

我尝试保留数组,没关系(也不应该重要)。

索引是正确的,计数是正确的,有什么问题??

4

2 回答 2

6

in 的容量arrayWithCapacity:只是优化的提示。数组的计数仍然为 0。

于 2012-06-28T14:49:34.573 回答
0

请检查您的数组计数它没有在位置 2 获得项目

于 2015-04-11T18:59:03.757 回答