【问题标题】:NSString compare returning NSOrderedDescending instead of NSOrderedSameNSString 比较返回 NSOrderedDescending 而不是 NSOrderedSame
【发布时间】:2014-01-20 07:25:30
【问题描述】:

我正在从连接的套接字接收 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

有人可以帮忙吗?

【问题讨论】:

  • 你能打印出你在字符串数据中有什么字符串吗?
  • 试试[substring2 isEqualToString:@"/>"]

标签: ios iphone objective-c nsstring nsstream


【解决方案1】:

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

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

你需要这样做:

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

现在获取子字符串并进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2023-02-25
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多