Sco*_*nce 9 cocoa objective-c string-comparison nsstring
我有一个调用Web服务的Cocoa应用程序.当我解析来自Web服务的响应时,我得到一个\n作为XML的每个元素的NSXMLParser的foundCharacters委托中的最后一个字符.
当我尝试执行以下操作时:
if (![string isEqualToString:@"\n"])
Run Code Online (Sandbox Code Playgroud)
检查将始终无法捕获换行符.有人知道串联检查换行的好方法吗?
我还发现奇怪的是每个元素在每个值的末尾都有一个换行符,即使我在Web服务的输出中没有看到任何证据.
对于应该非常容易做到的事情来说,这是一个非常棘手的问题.
phu*_*ehe 20
我想这就是你需要的东西?
text = [text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Pet*_*sey 12
当我解析来自Web服务的响应时,我得到一个\n作为最后一个字符...
当我尝试执行以下操作时:
Run Code Online (Sandbox Code Playgroud)if (![string isEqualToString:@"\n"])检查将始终无法捕获换行符.
该消息将只返回YES,如果string是一个字符的长度和字符\n.
如果要测试字符串是否以字符结尾 \n,则需要使用hasSuffix::
if (![string hasSuffix:@"\n"])
Run Code Online (Sandbox Code Playgroud)
如果你想从字符串的末尾剥离 \n并使用剩下的东西,那么phunehehe的解决方案是正确的.
编辑:在Jeremy W. Sherman的回答中,他指出网络服务可能会给你CRLF终止的文本.这是一个有效的点,您不仅要查看\n该行的末尾,还要检查完整的\r\n序列.他提供的代码是一种方法.无论如何,您仍然需要删除整行分隔符,即使它是一个\r\n序列.
| 归档时间: |
|
| 查看次数: |
11654 次 |
| 最近记录: |