NSString比较返回NSOrderedDescending而不是NSOrderedSame

时间:2014-01-20 07:25:30

标签: ios iphone objective-c nsstring nsstream

我从连接的套接字接收iPad应用程序中的数据。 我正在使用以下方法将收到的数据转换为NSString:

NSString *data = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding].

然后我使用

从字符串创建子字符串
NSString *substring1 = [data substringFromIndex:length-9]
NSString *substring2 = [data substringFromIndex:length-3]

其中length是[数据长度]。

然后我将substring2@"/>"字符串进行比较,如下所示     [substring2 compare:@"/>"] 在这里我检查了substring2的值,同时调试应用程序的值是@"/>" 但比较结果将返回NSOrderedDescending而不是NSOrderedSame

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你的字符串有尾随空格。您提取的字符串长度为3,长度必须为3。

现在您将其与长度为2的@"/>"进行比较。

你需要做到这一点:

NSString *data = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding].
data = [data stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

现在进行子串并比较。