我在以下for循环中收到“表达结果未使用”警告。
NSInteger i = 0;
for ( i; i < tags.count; i ++) {
}
似乎我错过了关于for循环如何工作的一些基本知识,任何人都可以了解这个警告的原因吗?
答案 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 ++) {
}