我似乎无法找到错误。这是我的代码:
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:]:索引2超出空数组的边界'
我试着保留阵列,这没关系(并且应该没关系)。
索引是否正确,计数是否正确,有什么问题?
答案 0 :(得分:6)
arrayWithCapacity:
中的容量只是优化的提示。该数组的计数仍为0。
答案 1 :(得分:0)
请检查您的阵列计数是否在第2位获取项目