objective-c - NSArray 循环问题

标签 objective-c c for-loop nsarray

我在 for 循环中遇到问题 我将 NSArray 放入表格 View 中,我希望最后一个对象位于第一个单元格中, 但它仅适用于第一个对象。

这有效:

for(int i = 0; i < messages.count ; i++)
    {
    }

但这不是:

 for(int i = messages.count; i > 0; i--)
    {
    }

错误消息是:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 203 beyond bounds [0 .. 202]'
*** First throw call stack:
(0x32bd33e7 0x3a8c4963 0x32b1eef9 0x891d3 0x34a01579 0x34a561f7 0x34a5613d 0x34a56021 0x34a55f4d 0x34a55699 0x34a55581 0x34a26561 0x349e58c7 0x34791513 0x347910b5 0x34791fd9 0x347919c3 0x347917d5 0x349eb93f 0x32ba8941 0x32ba6c39 0x32ba6f93 0x32b1a23d 0x32b1a0c9 0x366f833b 0x34a362b9 0x8549d 0x3acf1b20)
libc++abi.dylib: terminate called throwing an exception

最佳答案

您需要在消息计数 -1 处启动循环,如下所示:

for (int i = messages.count - 1; i >= 0; i--) 
{
   ...
}

因为 messages.count 将给出消息对象中保存的元素总数。数组中最大的元素索引将是 messages.count - 1,因为数组索引从 0 开始。

关于objective-c - NSArray 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324271/

相关文章:

iphone - Cocos2D CCSprite 对象移动太多

ios - 带有 SupplementaryView 固定在顶部的 JSQMessagesViewController

c - 更深入的功能分析/仿真

java - 更好的 Java 循环?

for-loop - 如何在for循环中增加计数器? (帕斯卡)

objective-c - 标签栏项目第三次触摸 TableView 不滚动到顶部

ios - objective-c :如何在iOS中查看代码

c - 从 C 中的文本文件读取解析数据的最佳方法?

c - C 中的二维动态数组分配和按引用传递

javascript - 如何减慢 JavaScript 中 for 循环的执行速度?