isEqualToString 未评估 true
isEqualToString not evaluating true
方法:
- (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
这似乎没有任何意义。我猜这个问题与编码有关,但我不确定是什么。感谢任何帮助。
比较字符串时,NSString
不考虑编码。
您的问题很简单:响应在“1”之后包含 28 个空格。
两种可能的解决方案:
BOOL integerValueEquality = [response integerValue] == 1;
或
NSString *trimmedString = [response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
BOOL stringEquality = [trimmedString isEqualToString:@"1"];
方法:
- (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
这似乎没有任何意义。我猜这个问题与编码有关,但我不确定是什么。感谢任何帮助。
比较字符串时,NSString
不考虑编码。
您的问题很简单:响应在“1”之后包含 28 个空格。
两种可能的解决方案:
BOOL integerValueEquality = [response integerValue] == 1;
或
NSString *trimmedString = [response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
BOOL stringEquality = [trimmedString isEqualToString:@"1"];