如何从NSXMLParserdelegate方法返回tableview的行数?

时间:2011-09-05 03:10:23

标签: iphone ios uitableview nsxmlparser asihttprequest

我目前正在使用ASIHTTPRequest包装器通过php脚本连接到我的数据库,基本上它查询数据库然后以xml格式返回结果集。

从那里我实例化我的解析器方法,其中将所有必需的信息传递给NSXMLParserDelegate方法

//..
parser:didStartElement:namespaceURI:qualifiedName:attributes:
//..
parser:foundCharacters:
//..
parser:didEndElement:namespaceURI:qualifiedName:
//..

当数据的初始流量下降时,数据首先通过NSMutableData变量传递。

然后我的解析器中有一个if语句:didStartElement:namespaceURI:qualifiedName:attributes:根据条件将所有数据传递给字符串

if ([elementName isEqual:@"item"]) {
        // NSLog(@"Found title!");
        itemString = [[NSMutableString alloc] init];
    }

从这里我想知道如何在numberOfSectionsInTableView方法中设置tableview的行数?我会称之为什么变量,还是我必须创造其他东西?

2 个答案:

答案 0 :(得分:1)

Apple Sample Code Code中有很好的解析XML的教程 它被称为SeismicXML

http://developer.apple.com/library/ios/#samplecode/SeismicXML/Listings/Classes_RootViewController_m.html#//apple_ref/doc/uid/DTS40007323-Classes_RootViewController_m-DontLinkElementID_8

在你的问题中你有错误:numberOfSectionsInTableView没有返回行数 - 它的返回部分计数。在大多数情况下,如果你有普通的tableview,它应该返回1。

并且此代码返回此部分中的行数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [YOUR_ARRAY count];
}

答案 1 :(得分:0)

如果我没有误解你,以下问题会有所帮助。

1希望您已经在elementDidEnd方法的某个数组中保存了所有项目值。

2写下如下代码。
if([parser parse]){ [tableView reloadData]; }

一旦完成解析,这将重新加载表。

3返回存储所有项值的数组的计数,并用该数组填充表。

如果您需要更多帮助,请发布。