if,using&& amp;中的条件出乎意料的结果

时间:2011-06-14 19:27:56

标签: objective-c cocoa json if-statement nsmutabledictionary

我正在使用JSON解析器进行解析。我将数据存储到searchURLNSMutableDictionary。我得到了JSON响应。

       ksearchKeyHeadline = "noresults"
       ksearchKeyNewsText = "http://172.15.12.98:8080//...... url."
       ksearchKeyIssuersText= "noresults"

我在这里创造条件:

if ([[searchURL objectForKey:KSearchKeyHeadline] isEqualToString:@"noresults"] &&
    [[searchURL objectForKey:kSearchKeyNewsText] isEqualToString:@"noresults"] &&
    [[searchURL objectForKey:kSearchKeyIssuerText] isEqualToString:@"noresults"]) {
    NSURLRequest *req;
    req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:kSearchBarNoResult,text.text]]];
    [[[featuredAsset viewControler] iWebview] loadRequest:req];
}
else if([searchURL objectForKey:KSearchKeyHeadline]!=@"noresults" && 
        [searchURL objectForKey:kSearchKeyNewsText]!=@"noresults" && 
        [searchURL objectForKey:kSearchKeyIssuerText]!=@"noresults"){
    NSURLRequest *req;
    req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:kSearchBarHeadlinesURL]]];
    [[[featuredAsset viewControler] iWebview] loadRequest:req];
}
else if([[searchURL objectForKey:kSearchKeyNewsText]isEqualToString:@"noresults"] && 
        [searchURL objectForKey:kSearchKeyNewsText]!=@"noresults" &&
        [[searchURL objectForKey:kSearchKeyIssuerText]isEqualToString:@"noresults"]){
    NSURLRequest *req;
    req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:kSearchBarNewsTextURL]]];
    [[[featuredAsset viewControler]iWebview]loadRequest:req];
}

问题是,它正在调用两个else if条件。我必须打电话给最后一个条件。我知道&号&&将检查条件 - 当整个条件为真时,它返回true。我做错了什么?

1 个答案:

答案 0 :(得分:0)

你无法比较像这样的NSStrings:

[searchURL objectForKey:KSearchKeyHeadline]!=@"noresults"

您需要使用isEqualToString

[[searchURL objectForKey:KSearchKeyHeadline] isEqualToString: @"noresults"]

此外,ksearchKeyHeadline"noresult",而非"noresults"