尝试使用if-if语句会导致崩溃

时间:2014-03-12 13:42:38

标签: ios objective-c if-statement

我对iOS开发很新,我可能看起来像个白痴问这个。 但尝试此操作会使应用完全崩溃。

- (IBAction)action:(id)sender
{
    if(NSInteger >= 4) {
        timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                                 target:self selector:@selector(countup)userInfo:nil repeats:YES];
        NSLog(@"Action: ‘action' succeeded");
    }
    else
    {
        [screen setText:[NSString stringWithFormat:@“You cannot do this."]];
        NSLog(@"Action: ‘action' failed");
    }
}

Countup定义为:

- (void)countup
{
    NSInteger += 1;
    [screen setText:[NSString stringWithFormat:@"Seconds: %d", NSInteger]];
}

我不知道我做错了什么,我已经尝试了几个小时修复它,我找不到任何能帮助我的答案。

4 个答案:

答案 0 :(得分:1)

我认为,你至少有一些其他语言的计算机编程知识,然后是Objective-C。

我将讨论这一行,但代码中的几行中出现同样的问题

if(NSInteger >= 4)

将NSInteger类型与数字(4)进行比较。我假设您想要将NSInteger类型的变量与数字4进行比较!

因此,您的代码看起来像这样:

NSInteger mySavedNumber = 20;
if(mySavedNumber >= 4)

OFC。 ' mySavedNumber'是我随机选择的变量的名称,您应该更改它以获取对您有用的内容,但我不知道您的其余代码,我无法真正告诉您想要的内容做。但你不能将它命名为NSInteger,因为' NSInteger'是一个已经采取的名称。

出于与我所说的相同的原因,这行代码也不起作用:

NSInteger += 1;

同样,NSInteger只是一种类型而不是变量本身。

答案 1 :(得分:0)

您需要使用变量。

NSInteger x;

然后

if (x >= 4) ...
[NSString stringWithFormat:@"Seconds: %d", x] ...

答案 2 :(得分:0)

老兄你需要创建一个NSInteger类型的变量。创建一个变量,然后使用它而不是NSInteger。

将代码更改为

-(IBAction)action:(id)sender
{
    NSInteger num;

    if(num >= 4) {
        timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countup)userInfo:nil repeats:YES];

        NSLog(@"Action: ‘action' succeeded");
    }
    else {
        [screen setText:[NSString stringWithFormat:@“You cannot do this."]];

        NSLog(@"Action: ‘action' failed");
    }
}

-(void)countup
{
    num += 1;
    [screen setText:[NSString stringWithFormat:@"Seconds: %d", num]];
}

答案 3 :(得分:0)

NSInteger是一种不是变量的类型。 您应该NSInteger myInt和使用myInt

if(myInt >= 4)

myInt++;