0

可能重复:
IF 子句不验证 NSString 函数返回?

我想做的是从 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);
            }
        }
    }
}
4

3 回答 3

4

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

于 2012-09-25T22:26:24.973 回答
2

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

[[yourString lowercaseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
于 2012-09-25T22:46:18.593 回答
1
if([str isEqualToString:@"normal"])
于 2012-09-25T22:26:20.410 回答