UITableView shows nothing

When I run the application to show the UITableView, it turns out nothing. It will not run :

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section {} 

and

- (UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath {}
  • development environment is IOS SDK 6.1. / simulator version is 6.0.
  • I used table view controller in storyboard.
  • I created a class called "RetrieveDataFromDBTableVC" and set the table view controller's custom class to "RetrieveDataFromDBTableVC". 在这里输入图像描述

  • I think the delegate and data source already set up for me, so I do not need to set again right? (The connection of delegate and datasource is Table View).

  • 在这里输入图像描述

  • In "RetrieveDataFromDBTableVC" class I defined like the following:

      - (void)viewDidLoad
      {
        [super viewDidLoad];
        [self retrieveData];
      }
    
      -(void)retrieveData
      {
          NSURL * url = [NSURL URLWithString:getDataURL];
          NSData * data = [NSData dataWithContentsOfURL:url];
    
          citiesArray = [[NSMutableArray alloc]init];
    
          // Assign data
          NSString * cID = @"aa";
          ...
    
          cities * myCity = [[cities alloc]initWithCityID:cID andCityID:cName andCityState:cState andCityPopulation:cPopulation andCityCountry:cCountry];
    
          // Add city object to our cities array
          [citiesArray addObject:myCity];
    
          // Create a myTableView outlet for this table view to reload data 
          // self.tableView is also correct right?
          [self.myTableView reloadData];
       }
    
       - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:    (NSInteger)section
       {
          // It will not run this function !!
          return [citiesArray count];
       }
    
       // It will not go into this function either !!
       - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
      {
         // Set the identifier name in UITableViewCell also
         static NSString *CellIdentifier = @"cities";
         UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    
         // Retrieve the current city object for use with this indexPath.row
        cities * currentCity = [citiesArray objectAtIndex:indexPath.row];
    
        cell.textLabel.text = currentCity.cityName;
    
        return cell;
      }
    
  • I think the connection is the problem, but I do not know how to figure that out. Thanks !!


    Make sure to change this line of your file from: (in the .h file)

    @interface YourClass : something
    

    to:

    @interface YourClass : something <UITableViewDataSource, UITableViewDelegate>
    

    If you haven't already.


    Unless it's painted as an instance of UITableViewController in IB, and a subclass of UITableViewController, the delegate and datasource are not automatically connected. Connect those explicitly in IB or in code on viewDidLoad.

    链接地址: http://www.djcxy.com/p/87728.html

    上一篇: Swift动态tableview在UIViewController

    下一篇: UITableView不显示任何内容