我不明白if(indexpath.row< array.count)是什么意思?

时间:2013-12-05 18:42:40

标签: ios objective-c

我真的很难理解这是什么意思。 如果选择了一行并且它小于数组中的元素数,那么执行此操作...

它没有沉入。请帮助。

3 个答案:

答案 0 :(得分:1)

我假设给定的array用于填充表格视图的内容,这一行出现在与选择相关的方法中。

变量indexpath指的是表中的特定项(可能是选中的行,具体取决于此行发生的方法)。它计算了两个索引:rowsection,第一个是给定部分中项目的从0开始的索引。

我还假设如果条件评估true,您将使用indexpath.row来获取array中的元素。如果是这种情况,那么不执行该检查会使代码暴露出超出数组范围的可能性。

此处使用

小于 <,因为数组和indexpath.row都是从0开始的索引,因此数组中的最大索引值是其计数减去 1。

答案 1 :(得分:0)

if(indexpath.row&lt; array.count)让我们将其分解

indexpath.row  indexpath类具有变量名称行,它将包含一个值,该值将由行的预设值或indexpath代码中设置的值确定。

array.count .count是为我们提供的那些句柄工具之一,它只是给你数组中元素的数量

现在让我们把它全部收集起来 if(如果行位于indexpath中的值&lt;数组中元素的数量)

希望这有帮助

罗宾

答案 2 :(得分:0)

计数将总是返回对象的数量。像这样:

NSArray *bowlWithFruits = @[@"Apple 1",@"Apple 2",@"Apple 3"];

计算数组中的对象会告诉你有3个。

到目前为止计算。 Objective C是C的超集,意味着我们首先使用C语言。在C中,您指的是集合中元素的偏移量,这与我们的ObjC集合中的内容相同。要回复@“Apple 1”你会说[bowlWithFruits objectAtOndex:0]或现代语法bowlWithFruits [0]

现在该指数正在发挥作用,但我认为你可以猜出我们的指数究竟是什么。他只是一个直线偏移。

因此,当我们将示例中最后一个元素的索引路径与对象计数进行比较时,我们实际上将2与3进行比较。没有objectAtIndex:3就像没有一个rowvalue为3的索引路径一样。

这就是你比较indexpath.row&lt;的原因。 array.count。