Objective-C - 循环播放但循环条件为 false
我正在尝试使用此函数将分段表转换为平面列表到 didSelectRowAtIndexPath (我有一个 NSArray,它使用每个部分中包含的项目数进行初始化):
在某处... :-)
self.sectionsArray = [NSArray arrayWithObjects:macroIntNumber(1), macroIntNumber(3), macroIntNumber(12), nil];
然后到 didSelectRowAtIndexPath :
int selectedRow = 0;
int a = indexPath.section;
for (int i=0; i<indexPath.section-1; i++) {
selectedRow += [[self.sectionsArray objectAtIndex:i] intValue];
}
selectedRow += indexPath.row;
但是。 .. 这会因indexPath.section = 0(第一部分)而崩溃。 因为循环会无限播放,直到 NSArray 调用崩溃...... 奇怪的 !!!
强制 for (int i=0; i<0-1; i++) {
有效 强制 for (int i=0; i
我缺少什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
section
是一个NSUInteger
,因此它是无符号的。因此,在该无符号整数上从 0 减去 1 会得到一个非常大的数字,而不是 -1。它在使用
a
时有效,因为您已将a
声明为int
。 :)section
is anNSUInteger
, so it's unsigned. Thus, subtracting 1 from 0 on that unsigned integer is taking you to a very large number rather than -1.It works when using
a
, because you've declareda
as anint
. :)