【问题标题】:UILabel int count ++ doesn't workUILabel int count ++ 不起作用
【发布时间】:2015-03-06 03:25:24
【问题描述】:

我试图无限期地计算UILabel 上的点击次数,每次点击标签时都会显示不同的字符串。但是,它总是使用 +++= 1 停止在 2 个水龙头

 -(void)cycleLabelString {
    int taps;
    taps += 1;
    NSLog(@"taps = %d", taps);

    if (taps == 1) {
        self.randomLabel.text = [NSString stringWithFormat:@"$%.2f", pagesCount * 0.69];
    } else if (taps == 2) {
        self.randomLabel.text = [NSString stringWithFormat:@"%d", pagesCount];
    } else if (taps >= 3) {
        NSLog(@" >= 3");
    }
}

【问题讨论】:

    标签: ios numbers int


    【解决方案1】:
    int taps;
    

    这样每次初始化一个新的taps,默认初始化为零。你可能想要它在一个属性中。在 .m 文件的顶部创建一个私有类扩展,如下所示:

    @interface YourClassNameHere ()
    
    @property (nonatomic) int taps;
    
    @end
    

    然后使用它:

    -(void)cycleLabelString {
        self.taps += 1;
        NSLog(@"taps = %d", self.taps);
    
        if (self.taps == 1) {
            self.randomLabel.text = [NSString stringWithFormat:@"$%.2f", pagesCount * 0.69];
        } else if (self.taps == 2) {
            self.randomLabel.text = [NSString stringWithFormat:@"%d", pagesCount];
        } else if (self.taps >= 3) {
            NSLog(@" >= 3");
        }
    }
    

    【讨论】:

    • 不要让它成为公共财产。
    • 正确 - 因此是私有类扩展。
    • 糟糕 - 抱歉。我没有注意到()。没关系:)
    • 没有足够的代表投票但感谢@ZevEisenberg
    【解决方案2】:

    每次点击标签时都会调用这个函数吗?如果是这样,您需要将 taps 定义为全局变量,因为每次点击标签时都会重置它。尝试类似:

    int taps;
    
    -(void)cycleLabelString {
    ...
    

    【讨论】:

    • 你为什么要把它变成全球性的?使其成为实例变量。
    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多