奇怪的索引2超出空数组错误的界限

Dav*_*Ari 2 iphone objective-c nsmutablearray ios

我似乎无法找到什么是错的.这是我的代码:

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

正如您所看到的,我希望通过活动中名为activityIndex的属性对活动集(在trainingSession中的关系)进行排序.活动的索引始终从0开始,这意味着没有索引超过trainSession.activities.count-1.

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

由于未捕获的异常'NSRangeException'而终止应用程序,原因:' * - [__ NSArrayM insertObject:atIndex:]:索引2超出空数组的边界'

我试着保留阵列,这没关系(并且应该没关系).

索引是正确的,计数是否正确,有什么不对?

fzw*_*zwo 6

容量arrayWithCapacity:仅仅是优化的暗示.该数组的计数仍为0.