我正在阅读一些代码并且我发现了以下声明,它似乎完全没有意义。该行编码如下。它接受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。
答案 0 :(得分:2)
如果您的数组(在这种情况下为inpuData
)具有键值匹配机制,则此循环将增加其索引但是因为每次条件相同([inputData objectAtIndex:0]
的计数将永远不会改变)这将导致无限循环
答案 1 :(得分:0)
如果你inputData
包含NSNumber
是正确的,那么第一次会发生异常,因为NSNumber
没有回复-count
。
代码执行其他任何操作的唯一方法是[inputData objectAtIndex:0]
响应-count
。它可以是响应-count
而不仅仅是数组的任何对象。实际上,如果inputData
为nil
,它也不会抛出异常。然后表达式返回0(将objectAtIndex:
发送到nil
返回nil
,将count
发送到nil
返回0)。