1

我正在阅读一些代码,并且遇到了以下语句,这似乎完全没有意义。该行编码如下。它获取 NSMutableArray 的第一个对象,然后发送“count”消息。这究竟是在做什么?

for (int j = 0; j < [[inputData objectAtIndex:0] count]; j++)
//inputData is just an NSMutableArray

有人可以向我解释一下吗?我以前从未遇到过这种情况。起初我想这可能就像一个二维数组场景,其中 array[x].length 与 array.length 不同,但 inputData 只是一个类似 10 个数字的 NSMutableArray。

4

2 回答 2

2

如果您的数组(在这种情况下inpuData)具有键值匹配机制,则此循环将增加其索引,但由于每次条件相同(计数[inputData objectAtIndex:0]永远不会改变),这将导致无限循环

于 2012-05-09T14:30:30.243 回答
0

如果你是正确的inputData包含NSNumbers,那么会发生什么是第一次通过,你得到一个异常,因为NSNumber没有响应-count

代码可以做任何其他事情的唯一方法是如果 [inputData objectAtIndex:0]响应-count. 它可以是任何不仅响应-count数组的对象。inputData实际上,如果是,它也不会抛出异常nil。然后表达式将返回 0(发送objectAtIndex:nil返回nil并发count送到nil返回 0)。

于 2012-05-09T14:42:32.460 回答