如果else语句在我的应用程序中不起作用

时间:2009-12-19 13:58:57

标签: objective-c

我正在制作一本字典(这是我的测试应用) 这是我的代码不起作用:

- (IBAction) btnClickMe_Clicked:(id)sender {


    NSString *kw = s.text;

    NSString *encodedkw =  [kw stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *mms = [NSString stringWithFormat: @"%@", encodedkw];

    if (mms=NULL){
        iMessageLabel.text=@"put text";
    } else if (mms=@"a"){
        iMessageLabel.text=@"this is a";
    } else if (mms=@"b"){
    iMessageLabel.text=@"this is b";
    }


}

有人对此有所了解吗? 谢谢 ALEX

3 个答案:

答案 0 :(得分:4)

您无法在NSString对象上使用==。试着这样做:

if (encodedkw == nil){
    iMessageLabel.text=@"put text";
} else if ([encodedkw isEqualToString:@"a"]){
   iMessageLabel.text=@"this is a";
} else if ([encodedkw isEqualToString:@"b"]){
   iMessageLabel.text=@"this is b";
}

mms应该等于encodedkw所以我转而使用它。我也使用isEqualToString进行字符串比较。最后,我更改了空检查以检查nil而不是NULL

答案 1 :(得分:1)

可能会发生这种情况,您需要调用某种字符串操作例程compare来比较字符串,而不仅仅是比较指针吗?

此外mms=NIL表示将NIL分配给mms而不是需要进行比较。

更新。: NIL并不代表空字符串。您应该编写[mms length] == 0来查看字符串是否为空。

答案 2 :(得分:1)

您使用的是=而不是==