【问题标题】:Compare strings in Objective-C [duplicate]比较Objective-C中的字符串[重复]
【发布时间】:2012-07-01 09:59:30
【问题描述】:

可能重复:
How do I compare strings in objective c?
Objective-C If statement?

当我尝试使用 == 因子比较 Objective-C 中的字符串时,我没有得到任何结果。我正在做的是拥有一个 XML 文档,然后检索值“day”,然后比较它们。但正如我所说,什么都没有发生。

XML 代码:

<dagensretlist>
<dagensret>
<day>mandag</day>
<date>Mandag 2. juli</date>
<name>Kylling fillet med rosti og salat</name>
<description>Den sprodeste kyllingfillet med Antons piksved</description>
</dagensret>

<dagensret>
    <day>tirsdag</day>
<date>Tirsdag 3. juli</date>
<name>Kylling fillet med rosti og salat</name>
<description>Den sprodeste kyllingfillet med Antons piksved</description>
</dagensret>

<dagensret>
    <day>onsdag</day>
<date>Onsdag 4. juli</date>
<name>Kylling fillet med rosti og salat</name>
<description>Den sprodeste kyllingfillet med Antons piksved</description>
</dagensret>

<dagensret>
<day>torsdag</day>
    <date>Torsdag 5. juli</date>
<name>Kylling fillet med rosti og salat</name>
<description>Den sprodeste kyllingfillet med Antons piksved</description>
</dagensret>

<dagensret>
    <day>fredag</day>
<date>Fredag 6. juli</date>
<name>Kylling fillet med rosti og salat</name>
<description>Den sprodeste kyllingfillet med Antons piksved</description>
</dagensret>
</dagensretlist>

代码本身:

- (void)getCurrencyList {
    NSArray *currencyList = [self getAllItems:@"//dagensret" fileName:@"dagensret.xml"];
    int numberOfCurrencies = [currencyList count];
    
    NSString *name, *date, *description, *day;
    if (numberOfCurrencies > 0) {
        for (int i = 0; i < numberOfCurrencies; i++) {
            
            name            = [[currencyList objectAtIndex:i] objectForKey:@"name"];
            day             = [[currencyList objectAtIndex:i] objectForKey:@"day"];
            date            = [[currencyList objectAtIndex:i] objectForKey:@"date"];
            description     = [[currencyList objectAtIndex:i] objectForKey:@"description"];
            
            if(day==@"1"){
                NSLog(@"day: %@, date: %@, name: %@, description: %@", day, date, name, description);
                NSLog(@"1");
            }
            if(day==@"tirsdag"){
                NSLog(@"day: %@, date: %@, name: %@, description: %@", day, date, name, description); 
            }
            if(day==@"onsdag"){
                NSLog(@"day: %@, date: %@, name: %@, description: %@", day, date, name, description); 
            } 
            if(day==@"torsdag"){
                NSLog(@"day: %@, date: %@, name: %@, description: %@", day, date, name, description); 
            } 
            if(day==@"fredag"){
                NSLog(@"day: %@, date: %@, name: %@, description: %@", day, date, name, description); 
            }             
            
        }
    }
}

这是将字符串与变量进行比较的错误方法吗?

谢谢!

【问题讨论】:

  • 请确保您的问题不依赖于 pastebins - 如果您的代码只有外部链接,一旦这些链接失效,您的问题就会变得毫无用处;他们确实死了。
  • 我认为链接不起作用
  • if ([day isEqualToString:@"tirsdag"])
  • 这个问题已经被问了一百万次了。请先搜索再询问。

标签: iphone objective-c


【解决方案1】:

使用 NSString 类中的isEqualToString 比较字符串

documentation

【讨论】:

  • 是的,这两个字符串永远不会相等,因为至少一个是常量,一个是变量。
  • 我猜这是来自 PHP 的问题....谢谢大家的帮助!
【解决方案2】:

使用以下 if 条件...

if([day isEqualToString:@"1"]){
   // your code
}...

如果这样,请全部使用..

希望对你有帮助..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多