有数据,data 是有的。
- (void)downloader:(Downloader *)downloader didFinishWithData:(NSData *)data {
调用了
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"4 ");
return self.dataArray.count;
}
但是 ,没调用
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"5 ");
return 80;
}
和
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
原因分析:
有数据,
但是 , 这一步 有问题。
- (void)downloader:(Downloader *)downloader didFinishWithData:(NSData *)data {
//XML解析
MyXMLParser * parser = [[MyXMLParser alloc ] init ];
self.dataArray = [parser parseWithData: data ];
数据 没 解析 对。
self.dataArray ,没 值。
就这样了。
√
结果
√
@implementation MyXMLParser 里面的
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ( [ elementName isEqualToString: @"newslist" ] ){
// 我是这么写的,
// if ( [ elementName isEqualToString: @"newsList" ] ){
self.dataArray = self.newsListArray;
self.newsListArray = nil;
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict {
if ( [elementName isEqualToString: @"newslist" ]){
// 我是这么写的,
// if ( [elementName isEqualToString: @"newsList" ]){
self.newsListArray = [NSMutableArray array ];