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];
}
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];
}