如果在文本字段中输入的文本与数组中的对象匹配,我正在尝试创建一个取消或将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,如果不匹配,则会将其中一个匹配。
问题是无论是对还是错,它只会带走一个。
感谢您的时间。
答案 0 :(得分:2)
如果要比较字符串值,则应使用isEqualToString
。 isEqual
方法通常会比较指针值,因此您从文本字段获取的内容以及在数组中输入的内容将始终返回不同的内容。
答案 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--;