iPhone-下载时跳过一部分数据?

问题描述

| 我目前正在使用NSURLConnection通过服务器上的PHP脚本从数据库下载一些日期。 连接工作正常,并且数据正确接收。但是,当我解析数据时遇到问题。 我目前正在尝试使用NSXMLParser解析数据,但是由于错误代码4而失败,我认为这是因为我检索的内容不完全是XML。如果它完全是XML,则可以使用。 这是检索到的数据的示例:
43534545-45345345-34534554|iPhone emulator|<provdoc>
<characteristic type=\"P1\">
...
</characteristic>
</provdoc>
我想做的就是将数据拆分为:
43534545-45345345-34534554
和:
iPhone emulator
<provdoc>
<characteristic type=\"Profile1\">
...
</characteristic>
</provdoc>
因此,我想我应该在接收数据的以下函数中执行此操作,我需要知道如何将数据分为上述三个部分? 因此,我最后得到两个字符串,第一个字符串包含数字,第二个字符串包含iPhone仿真器位,然后是可以通过NSXMLParser发送的数据。 有人能指出我正确的方向吗,我需要达到的目标?
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    [self.responseData appendData:data];

}
    

解决方法

将最终的NSData转换为NSString:
NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSUTF8Encoding];
然后,您需要开始拆分该字符串。这是获取第一部分的示例:
NSRange end = [someString rangeOfString:@\"<\"];
NSString *str = [someString substringWithRange:NSMakeRange(0,end.location)];
然后拆分第一个:
NSArray *initialItems = [str componentsSeparatedByString:@\"|\"];
您应该能够使用上述技术找出其余的内容。