Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何从NSXMLParserdelegate方法返回tableview的行计数?_Iphone_Ios_Uitableview_Nsxmlparser_Asihttprequest - Fatal编程技术网

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

Iphone 如何从NSXMLParserdelegate方法返回tableview的行计数?,iphone,ios,uitableview,nsxmlparser,asihttprequest,Iphone,Ios,Uitableview,Nsxmlparser,Asihttprequest,我目前正在使用ASIHTTPRequest包装器通过一个php脚本连接到我的数据库,基本上它查询数据库,然后以xml格式返回结果集 从那里我实例化了我的解析器方法,该方法将所有需要的信息传递给NSXMLParserDelegate方法 //.. parser:didStartElement:namespaceURI:qualifiedName:attributes: //.. parser:foundCharacters: //.. parser:didEndElement:namespaceU

我目前正在使用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的行数?我应该调用什么变量count on,或者我必须创建其他变量?

如果我没有误解您,下面的问题将有所帮助

我希望您已经在elementDidEnd方法中保存了某些数组中项的所有值

2编写如下代码。
if([parser parse]){ [tableView重新加载数据]; }

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

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


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

苹果示例源代码中有解析XML的精彩教程 这叫做地震活动

在您的问题中,您有一个错误:NumberOfSectionsTableView没有返回行计数-它是返回节计数。在大多数情况下,如果您有普通的tableview,它应该返回1

此代码返回此节中的行数

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

是的,我现在将我的结果放入一个数组中,并在tablerow count thingy中调用该数组的计数。。但是它调用在解析任何内容之前,不显示行。。那一套代码不起作用。。所以我不知道还能做什么。然后你可以试试这个。1.在diEndElement方法中,为XML的最后一个标记添加一个额外的if条件。2.当遇到最后一个标记时,重新加载表。这将确保在解析XML后重新加载表(您可能必须在PerformSelect中调用该方法)。请确保您正在用正确的数组填充表,因为在我的代码中,上面的方法在这里起作用。如果仍然不起作用,那么发布一些用于加载表的代码。+reload表示您正在调用一些静态方法。如果UITableView不是UITableView类本身,请确保调用的是实例方法。cheers不敢相信我是通过节计数这样做的,但是这仍然不能解决以下问题:视图在解析处理之前加载,因此没有显示数据。是,首先,数组是空的,并且其中没有行,因此[your_array count]返回0。但是,当解析操作结束并用数据填充数组时,需要要求tableview重新加载数据,就像Leaner提到的那样-[your_table_view重新加载数据];如果您向我们展示更多代码,我们可以更好地帮助您