Zar*_*aki 1 iphone parsing uiprogressview
我正在使用XML文件进行解析.我想显示一个进度条,直到解析过程完成.如何计算ProgressView的进度?请帮助..
首先,计算行数.
NSError *error = nil;
NSString *xmlFileString = [NSString stringWithContentsOfURL:url
encoding:NSUTF8StringEncoding error:&error];
_totalLines = [xmlFileString componentsSeparatedByString:@"\n"].count;
Run Code Online (Sandbox Code Playgroud)
然后,捕获委托方法块中的进度.例如:
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
[self.elementStack addObject:elementName];
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
[mainQueue addOperationWithBlock:^{
_progressView.progress = (CGFloat)[parser lineNumber] / (CGFloat)_totalLines;
}];
}
Run Code Online (Sandbox Code Playgroud)
示例项目在这里:
https://github.com/weed/p120727_XMLParseProgress

如果要解析NSXMLParser并知道要解析的文件的长度,可以通过调用lineNumber解析器对象来告诉您解析器在文件中的位置,从而估算进度.
progressView.progress = (CGFloat)[parser lineNumber] / (CGFloat)totalLines;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |