2014-01-20 61 views
0

我正在从一个连接的套接字接收iPad应用程序中的数据。 我转换使用下面的方法来接收的NSString数据:NSString比较返回NSOrderedDescending而不是NSOrderedSame

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

然后我使用的

NSString *substring1 = [data substringFromIndex:length-9] 
NSString *substring2 = [data substringFromIndex:length-3] 

其中长度为[数据长度]创建从字符串的子串。

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

任何人都可以请帮忙吗?

+2

你能打印字符串数据中的字符串吗? –

+0

尝试'[substring2 isEqualToString:@“/>”]' – Akhilrajtr

回答

0

您的字符串有拖尾空间。您所提取的长度的字符串 - 3,它必须是长度的3

现在你用@"/>"其长度为2

比较它你需要做的是低于方式:

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

现在把子串和比较。