【问题标题】:isEqualToString not evaluating trueisEqualToString 不评估 true
【发布时间】:2015-03-15 13:43:00
【问题描述】:

方法:

- (void)serverResponse:(NSData *)data
{
    NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@", response);
    NSLog(@"%i", [response isEqualToString:@"1"]);
}

日志:

2015-03-15 06:26:53.716 appName[687:60b] 1                            
2015-03-15 06:26:53.718 appName[687:60b] 0

这似乎没有任何意义。我猜这个问题与编码有关,但我不确定是什么。任何帮助表示赞赏。

【问题讨论】:

  • 记录data和记录[@"1" dataUsingEncoding:NSUTF8StringEncoding]
  • 记录数据并看到 20 的空格

标签: cocoa-touch nsstring nsdata


【解决方案1】:

比较字符串时,NSString 不考虑编码。

您的问题很简单:响应在“1”之后包含 28 个空格。

两种可能的解决方案:

BOOL integerValueEquality = [response integerValue] == 1;

NSString *trimmedString = [response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
BOOL stringEquality = [trimmedString isEqualToString:@"1"];

【讨论】:

  • 我以为我删除了 php 中的所有 ?> 标签,但还剩下一个。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
相关资源
最近更新 更多