0

アプリケーションを実行して UITableView を表示すると、何も表示されません。実行されません:

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

- (UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath {}
  1. 開発環境はIOS SDK 6.1です。/ シミュレータのバージョンは 6.0 です。
  2. ストーリーボードでテーブルビューコントローラーを使用しました。
  3. 「RetrieveDataFromDBTableVC」というクラスを作成し、テーブル ビュー コントローラーのカスタム クラスを「RetrieveDataFromDBTableVC」に設定しました。 ここに画像の説明を入力

  4. デリゲートとデータ ソースは既に設定されていると思いますので、再度設定する必要はありませんよね? (デリゲートとデータソースの接続はテーブル ビューです)。

ここに画像の説明を入力

  1. 「RetrieveDataFromDBTableVC」クラスでは、次のように定義しました。

      - (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;
      }
    

接続が問題だと思いますが、それを理解する方法がわかりません。ありがとう !!

4

2 に答える 2

0

IB で UITableViewController のインスタンスおよび UITableViewController のサブクラスとして描画されない限り、デリゲートとデータソースは自動的に接続されません。これらを IB または viewDidLoad のコードで明示的に接続します。

于 2013-08-17T03:37:10.043 に答える
0

ファイルのこの行を次のように変更してください: (.h ファイル内)

@interface YourClass : something

に:

@interface YourClass : something <UITableViewDataSource, UITableViewDelegate>

まだ行っていない場合。

于 2013-08-17T00:46:25.610 に答える