iOS 带有索引的 insertObject

iOS insertObject with index

self.messageArray = [NSMutableArray array];

[self.messageArray addObject:[[MessageData alloc] initWithMsgId:[_instantMessageID objectAtIndex:i] text:[_instantMessageData objectAtIndex:i] date:[NSDate date] msgType:JSBubbleMessageTypeOutgoing mediaType:JSBubbleMediaTypeText img:nil]];

[self.messageArray insertObject:[[MessageData alloc] initWithMsgId:[messageID objectAtIndex:i] text:[messages objectAtIndex:i] date:[NSDate date] msgType:JSBubbleMessageTypeOutgoing mediaType:JSBubbleMediaTypeText img:nil] atIndex:0];

第一个 addObject 部分 运行 和我的 self.messageArray 中添加的东西比我 运行 insertObject 部分再次添加的东西 self.messageArray ] 但不是索引 0.

此代码部分不起作用我该如何解决这个问题我想添加对象始终开始

例如我的第一个数据: 4,5,6,7,8

第二个数据:1,2,3

我想插入对象这样开始 {1,2,3,4,5,6,7,8}

请帮忙

看起来你的 insert 是在一个循环中发生的(你没有显示)你对 i 的使用暗示了这一点。您可能会以递增的方式遍历 i,但这会以您希望的相反顺序将项目插入到数组的开头。

您可以通过以下两种方式之一解决此问题:

反转你的循环

for (NSInteger i = numberOfObjects-1; i >= 0; i--) {
  [self.messageArray insertObject:obj atIndex:0];
}

使用i作为插入点

for (NSInteger i = 0; i < numberOfObjects; i++) {
  [self.messageArray insertObject:obj atIndex:i];
}