代码之家  ›  专栏  ›  技术社区  ›  esqew

需要有关iPhone SDK中简单计数错误的帮助

  •  1
  • esqew  · 技术社区  · 14 年前

    所以我基本上制作了一个应用程序,在一个数字上添加一个计数,然后在每次点击按钮时显示它。

    但是,发布的第一个tap不采取任何措施,而是在第二个tap上添加一个(按计划)。我已经找遍了地球的尽头,没有任何运气,所以我会看看你们能从中得到什么。:)

    #import "MainView.h"
    
    @implementation MainView
    
    int count = 0;
    
    -(void)awakeFromNib {
    
        counter.text = @"0";
    
    }
    
    - (IBAction)addUnit {
    
        if(count >= 999) return;
    
        NSString *numValue = [[NSString alloc] initWithFormat:@"%d", count++];
        counter.text = numValue;
        [numValue release];
    }
    
    - (IBAction)subtractUnit {
    
        if(count <= 0) return;
    
        NSString *numValue = [[NSString alloc] initWithFormat:@"%d", count--];
        counter.text = numValue;
        [numValue release]; 
    }
    @end
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Brandon Bodnar    14 年前

    实际上,第一次敲击是在做什么。

    您正在后递增 count 所以第一次打电话给 addUnit: 计数 是递增的,但返回值为 count++ 是count的旧值。您要使用 ++count .

    例子:

    int count = 0;
    int x = count++;
    // x is 0, count is 1
    
    x = ++count;
    // x is 2, count is 2