Objective-C - 循环播放但循环条件为 false

发布于 2024-10-12 18:20:38 字数 750 浏览 7 评论 0 原文

我正在尝试使用此函数将分段表转换为平面列表到 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 有效

我缺少什么?

I'm trying to convert a sectionned table into a flat list using this function into didSelectRowAtIndexPath (I have a NSArray that is initialisated with the number of items contained in each section) :

Somewhere... :-)

self.sectionsArray = [NSArray arrayWithObjects:macroIntNumber(1), macroIntNumber(3), macroIntNumber(12), nil];

then into 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;

But... This crashes for indexPath.section = 0 (first section).
Because the loop is played infinitly until crash of the NSArray call...
Strange !!!

forcing for (int i=0; i<0-1; i++) { works

forcing for (int i=0; i<a-1; i++) { works

What am I missing ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美羊羊 2024-10-19 18:20:38

section 是一个 NSUInteger,因此它是无符号的。因此,在该无符号整数上从 0 减去 1 会得到一个非常大的数字,而不是 -1。

它在使用 a 时有效,因为您已将 a 声明为 int。 :)

section is an NSUInteger, 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 declared a as an int. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文