for循环中的表达式结果未使用警告

时间:2013-11-23 10:54:24

标签: objective-c cocoa-touch cocoa

我在以下for循环中收到“表达结果未使用”警告。

   NSInteger i = 0;
   for ( i; i < tags.count; i ++) {

   }

似乎我错过了关于for循环如何工作的一些基本知识,任何人都可以了解这个警告的原因吗?

2 个答案:

答案 0 :(得分:4)

由于您在循环之外声明了i,因此i的第一部分中的表达式for未使用:

for ( i /* <<== This one */ ; i < tags.count; i ++) {

}

for循环的语法允许您删除其三个表达式分区中任何一个的内容。这应该可以解决问题:

for ( ; i < tags.count; i ++) {

}

事实上,你可以放弃所有三个,使循环无限:

for ( ; ; ) {
    ...
    if (some_condition) break;
    ...
}

注意:通常,您应该将循环变量声明为循环标头的一部分。唯一的例外是当您需要在循环外使用i的最终值时。

答案 1 :(得分:1)

用以下代码替换您的代码:

for ( NSInteger i = 0; i < tags.count; i ++) {

}