NSString isEqualToString问题

Chr*_*nam 0 iphone cocoa-touch objective-c nsstring ios

我正在制作一个应用程序,我正在尝试使用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");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在日志中得到的

2013-01-02 23:13:27.512 My Sky[3788:907] Partly Cloudy  , Partly Cloudy
Run Code Online (Sandbox Code Playgroud)

如您所见,它们是相同的.我在这做错了什么?

Mid*_* MP 10

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

Partly Cloudy  , Partly Cloudy
Run Code Online (Sandbox Code Playgroud)

第一个字符串后面有一个额外的空格.检查此代码:

- (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");
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 请摆脱`stringWithFormat:`的不必要的使用. (7认同)