2014-01-20 80 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]]; 

現在把子串和比較。