【问题标题】:NSString isEqualToString issueNSString isEqualToString 问题
【发布时间】:2013-01-03 04:17:27
【问题描述】:

我正在制作一个应用程序,并尝试使用 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

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

【问题讨论】:

  • 可能是字符串末尾有多余的空格。尝试检查两者是否具有相同的字符长度。

标签: iphone objective-c ios cocoa-touch nsstring


【解决方案1】:

不,字符串不相等。 从您的日志中:

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");
   }
}

【讨论】:

  • @ChrisLoonam:感谢您的评论 :) 请检查我编辑的答案,我已经添加了解决方案。
  • @ChrisLoonam: 很高兴:)
  • 请去掉stringWithFormat:这两种不必要的用法。
  • @rmaddy:感谢您的宝贵意见,我编辑了我的答案:)
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多