NSString比较不起作用

时间:2012-09-25 22:25:17

标签: iphone objective-c ios rss nsstring

  

可能重复:
  IF clause is not validating NSString function return?

我要做的是从RSS源获取项目并根据其类型将它们存储在数组中。但问题是,当我比较字符串以分隔项目时,我检查过没有任何事情,字符串完全相同,但它表示它们不相等。

- (void)parserDidEndDocument:(NSXMLParser *)parser {

    if (eventsList != nil) {
        for (int i = 0; i<[eventsList count]; i++) {
            NSMutableString* str = [[eventsList objectAtIndex:i] objectForKey:@"category"];
            if ([str isEqualToString:@"normal"]) {
                normalEvents = [[NSMutableArray alloc] init];
                [normalEvents addObject:eventsList];
            } else if ([str isEqualToString:@"sub"]) {

                subEvents = [[NSMutableArray alloc] init];
                [subEvents addObject:eventsList];
            } else if ([str isEqualToString:@"main"]) {
                NSLog(@"salve mundi");

                mainEvents = [[NSMutableArray alloc] init];
                [mainEvents addObject:eventsList];
            } else {
                NSLog(@"%@",str);
            }
        }
    }
}

3 个答案:

答案 0 :(得分:4)

使用==比较对象的地址。要比较两个NSStrings的内容,您必须使用实例方法[str isEqualToString:@"sub"]

答案 1 :(得分:2)

我会做一些测试以确保字符串相等。例如,如果它在结尾或开头有空格,如果它是大写的等等。

[[yourString lowercaseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]

答案 2 :(得分:1)

if([str isEqualToString:@"normal"])