我有一个while循环应该循环遍历一个条件,但不能多次遍历整个过程。Objective C虽然循环不循环
这是我的相关代码:
NSInteger i = 0;
while(i <= building.departments.count)
{
NSLog(@"Number of building departments: %lu", (unsigned long)building.departments.count);
NSLog(@"i : %ld", (long)i);
UILabel *dtitleLB = [[UILabel alloc] initWithFrame:CGRectMake(5, y, 310, 20)];
dtitleLB.text = ((DBDepartment*)[building.departments objectAtIndex:i]).Name;
dtitleLB.textAlignment = UITextAlignmentLeft;
dtitleLB.backgroundColor = [UIColor clearColor];
dtitleLB.textColor = [UIColor lightGrayColor];
dtitleLB.font = [UIFont fontWithName:@"Helvetica" size:(16.0)];
[scrollView addSubview:dtitleLB];
y += 30;
UIButton* dphoneNB = [UIButton buttonWithType:UIButtonTypeCustom];
[dphoneNB setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[dphoneNB setTitleColor:[UIColor colorWithRed:0.3 green:0.3 blue:0.9 alpha:1.0] forState:UIControlStateNormal];
[dphoneNB addTarget:self action:@selector(numberPress:) forControlEvents:UIControlEventTouchUpInside];
[dphoneNB setTitle:((DBDepartment*)[building.departments objectAtIndex:i]).Phone forState:UIControlStateNormal]; i++;
dphoneNB.frame = CGRectMake(5, y, 315, 25);
[scrollView addSubview:dphoneNB];
y += 30;
UIButton* dwebsiteNB = [UIButton buttonWithType:UIButtonTypeCustom];
[dwebsiteNB setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[dwebsiteNB setTitleColor:[UIColor colorWithRed:0.3 green:0.3 blue:0.9 alpha:1.0] forState:UIControlStateNormal];
[dwebsiteNB addTarget:self action:@selector(linkPress:) forControlEvents:UIControlEventTouchUpInside];
[dwebsiteNB setTitle:((DBDepartment*)[self->building.departments objectAtIndex:i - 1]).Website forState:UIControlStateNormal]; i++;
dwebsiteNB.frame = CGRectMake(5, y, 315, 25);
[scrollView addSubview:dwebsiteNB];
y += 30;
i++;
}
用于第一的NSLog = 1或更大的取决于用户的选择(从未0)输出。 第二个NSLog = 0的输出永远不会变大。
如果你可以检查我的代码,看看是否有任何明显的错误,那将不胜感激。
谢谢!
“building.departments.count”是否等于0或1?你似乎也在几个地方增加了“我”。 –
aso在顶部的2个NSLog的输出会很好 – John
你有多少个部门? –