取消当前NSXMLParser解析操作的简便方法?
|
好的。
假设我有一个“ 0”,用户可以在其中输入网址,例如:
http://foo.bar/foo/bar.asmx
现在,如果为应用程序提供了正确的URL,它将根据返回的值以NSData
响应,其字节大小约为450-700,这取决于用户之间的值。调用大约需要一秒钟左右的时间,“ 3”也将在一秒钟之内解析数据。
但是每当我们输入例如:
http://apple.com/foo/bar.asmx
我们收到一个2字节,其字节大小约为9700。解析器通过无穷大解析此数据。而且,我不知道当用户向无效的URL输入导致how3解析为无穷大时,如何抛出正确的错误消息。
我们尝试使用它。
在里面
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
xmlParser = [[NSXMLParser alloc] initWithData:myData];
[xmlParser setDelegate:self];
[xmlParser shouldResolveExternalEntities:YES];
[xmlParser parse];
[self performSelector:@selector(timeOutMyParser:) withObject:nil afterdelay:15];
[xmlParser release];
[connection release];
[myData release];
}
现在,这段代码会发生什么事,因为performSelector永远运行解析,所以它永远不会执行。
总结一下:
为了减少用户可以创建的错误数量,如果需要花费很长时间,我们需要停止当前的NSXMLParser解析器操作。
有什么简便的方法可以取消当前的解析操作?
没有找到相关结果
已邀请:
2 个回复
浮凰量
会返回一个布尔值,如果解析成功,该值为YES。否则返回NO。因此,只需接收布尔值即可。
解析时,如果您在XML中收到无效数据,或者要根据条件停止解析,则可以通过调用取消解析
您可以检查状态并采取适当的措施。
驮帽俺篮号
我做到了
是这样的。