在iOS应用程序中无法使用加法和减法

时间:2012-10-22 20:42:02

标签: objective-c ios

如果在文本字段中输入的文本与数组中的对象匹配,我正在尝试创建一个取消或将1加到整数的应用程序。

我的.m文件中的代码

NSString *inputtwo =EnterNameText.text;
BOOL isItright = NO;
for(NSString *possible in scoreArray1)
{
    if([inputtwo isEqual:possible] )
    {
        isItright = YES;
        break;
    }
}

NSString *wronginput = EnterNameText.text;
BOOL isWrong = NO;
for(NSString *wrong in scoreArray1)
{
    if(![wronginput isEqual:wrong ] )
    {
        isWrong = YES;
        break;
    }
}

static int myInt;

if(isItright)
{
    myInt++;

    NSString *score = [NSString stringWithFormat:@"%d", myInt];
    [scorelabel setText:score];
}

if (isWrong)
{
    myInt--;

    NSString *score = [NSString stringWithFormat:@"%d", myInt];
    [scorelabel setText:score];
}

因此,程序会检查数组中是否存在名为scoreArray1的匹配项,如果存在,则会将1添加到myInt,如果不匹配,则会将其中一个匹配。

问题是无论是对还是错,它只会带走一个。

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

如果要比较字符串值,则应使用isEqualToStringisEqual方法通常会比较指针值,因此您从文本字段获取的内容以及在数组中输入的内容将始终返回不同的内容。

答案 1 :(得分:0)

您的程序中存在逻辑错误。首先,检查文本字段的内容是否与scorearray1中的任何元素匹配,以及是否存在匹配isItright。在此之前,一切都是正确的(除了使用isEqualToString更好地完成等式检查)。但现在您检查scorearray1是否不包含文本字段的内容,如果scorearray1中只有一个元素与文本字段isWrong不匹配,则为真。

您应该只使用带有以下if else的第一个循环。如果textfield的内容等于scorearray1中的任何字符串,则将{1}添加到myInt,否则(数组中没有匹配项)减去1。

使用以下代码:

NSString *inputtwo =EnterNameText.text;
BOOL isItright = NO;
for(NSString *possible in scoreArray1)
{
    if([inputtwo isEqualToString:possible] )
    {
        isItright = YES;
        break;
    }
}

static int myInt;

if(isItright)
{
    myInt++;
}
else
{
    myInt--;
}
NSString *score = [NSString stringWithFormat:@"%d", myInt];
[scorelabel setText:score];

答案 2 :(得分:0)

NSString *input = EnterNameText.text;
BOOL matchFound = NO;
static in myInt;

for (NSString *score in scoreArray1)
    if ([input isEqualToString:score])
    {
        matchFound = YES;
        break;
    }

if (matchFound)
    myInt++;
else
    myInt--;