我正在尝试根据他们的十年列出年份。
我有这个forLoop:
for (int i = 0; i <= 9; i++) {
NSString *thisYear = [NSString stringWithFormat: @"%ld", thisDecade];
//NSLog (@"(long)selectedDecade++ %ld", (long)selectedDecade++ );
thisDecade = thisDecade ++;
NSLog (@"thisDecade %ld", thisDecade);
}
我在按钮标签中使用结果。 记录输出显示标签文本和循环结果之间的差异,我有一个痛苦的脖子试图弄清楚为什么..它是循环中的东西?感谢
日志:
[AppDelegate setYears]
selectedDecade: 1970
thisDecade 1971
RightSideBar aTitle is 1970
thisDecade 1972
RightSideBar aTitle is 1971
thisDecade 1973
RightSideBar aTitle is 1972
thisDecade 1974
RightSideBar aTitle is 1973
thisDecade 1975
更新 - 我感谢所有的帮助,但我仍然感到难过。我附上了日志的截图,以及生成它们的代码..再次感谢..
- (void)addButtonWithTitle:(NSString *)aTitle image:(NSImage *)image alternateImage:
(NSImage*)alternateImage
{
//NSLog(@"%s", __FUNCTION__);
NSButtonCell * cell = [self addButton];
[cell setTitle:aTitle];
NSLog(@"RightSideBar aTitle is %@", aTitle); << see the logs vs the screenshot
[cell setImage:image];
[cell setAlternateImage:alternateImage];
}
日志:
UPDATE2:事实证明我错误地将自定义单元格子类化了,结果称它太多次了......我会标记为完整,因为你们都给了我很好的想法。我希望我们可以奖励多个点..
答案 0 :(得分:5)
您的问题可能就在
行thisDecade = thisDecade ++;
您应该记住,输入和减量运算符(++
,--
)已经将新值存储在变量中。所以这没关系:
++thisDecade;
您要做的是未定义的。从第142页开始:http://www.slideshare.net/olvemaudal/deep-c
,看看这个答案 1 :(得分:2)
为thisYear
创建的所有字符串(可能是您用来标记按钮的所有字符串)将会关闭一年,因为在使用thisDecade
变量格式化后,您将增加thisDecade++;
变量字符串。我相信您应该在NSString格式化之前移动递增,或者在NSLog语句之后移动它。此外,您只需要编写{{1}}来增加变量。