2013-01-03 62 views
0

我正在制作一个应用程序,并试图使用isEqualToString来比较字符串我知道是相同的。但是,此代码是不工作NSString isEqualToString问题

- (void)uui { 
    array2 = [NSMutableArray arrayWithContentsOfFile:Path2]; 
    string = [NSString stringWithFormat:@"%@", [array2 objectAtIndex:3]]; 
    NSString *string2 = [NSString stringWithFormat:@"Partly Cloudy"]; 
    NSLog(@"%@ , %@", string, string2); 
    if ([string isEqualToString:string2]) { 
     NSLog(@"frack"); 
    } 
} 

这是我得到的日志

2013-01-02 23:13:27.512 My Sky[3788:907] Partly Cloudy , Partly Cloudy 

中你可以看到,他们是相同的。我在这里做错了什么?

+0

可能是字符串在最后有多余的空格。尝试检查两个具有相同的字符长度。 – KingofBliss

回答

10

没有字符串不相等。 从您的日志:

Partly Cloudy , Partly Cloudy 

第一个字符串后面有一个额外的空间。 请使用此验证码:

- (void)uui 
{ 
    array2 = [NSMutableArray arrayWithContentsOfFile:Path2]; 
    string = (NSString *)[array2 objectAtIndex:3]; 
    NSString *string2 = @"Partly Cloudy"; 
    NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    NSLog(@"%@ , %@", trimmedString, string2); 
    if ([trimmedString isEqualToString:string2]) 
    { 
    NSLog(@"frack"); 
    } 
} 
+0

圣洁的废话谢谢在此上花费时间 –

+0

@ChrisLoonam:感谢您的评论:)请检查我编辑的答案,我已经添加了一个解决方案。 –

+0

非常感谢,这使得它更容易 –