0

そのため、RestKit を使用して Web サービスにアクセスし、そこからデータを取得しています。これまでのところ、2 つのビューがあり、データ取得のその部分は問題ありません。必要な 100 個のオブジェクトを取得し、それらを「songs」という配列に保存します。

ここにdidLoadObjectsがあります:

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
    NSLog(@" Reached didLoadObjects: %d", [objects count]);

    self.songs = objects;
    NSLog(@"%@",self.songs);
}

わかりました、私には 2 つのビューがあります。もちろん、問題は 2 つ目のビューにあります。ストーリーボードを使用しています。tableView セルに「TopListCellIdentifier」という識別子を付けました。

したがって、オブジェクトを取得すると、100個すべてがコマンドラインで「出力」されますが、cellForRowAtIndexPath内の配列からデータにアクセスしようとすると問題が発生します。これは、カスタムtableViewCellがあるために実行する必要があるものです必要な情報 (息子、アーティスト、カバーなど) を表示します。そのため、アプリを起動すると、最初のビューは問題ありませんが、2 番目のビューには 100 個のセルがありますが、情報はありません。これが cellForRowAtIndexPath コードです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *TopListCellIdentifier = @"TopListCellIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TopListCellIdentifier];

    // Loading the Cover Images in the Background
    // Cover Image: Tag 1
    [((HJManagedImageV*)[cell viewWithTag:1]) clear];
    HJManagedImageV* thumbImage = ((HJManagedImageV*)[cell viewWithTag:1]);
    NSString *thumbUrl = [[self.songs objectAtIndex:[indexPath row]] thumbnail];

    thumbImage.url = [NSURL URLWithString:thumbUrl];
    [[ImageHandler sharedHandler].imgManager manage:thumbImage];

    //Song and Artist: Tag 2 and 3
    ((UILabel*)[cell viewWithTag:2]).text = [[self.songs objectAtIndex:[indexPath row]] title];
    ((UILabel*)[cell viewWithTag:3]).text = [[self.songs objectAtIndex:[indexPath row]] artist];

    //Arrow Up/Down/Same: Tag 4
    //TODO

    //Position Number: Tag 5
    ((UILabel*)[cell viewWithTag:5]).text = [NSString stringWithFormat:@"%d.", [indexPath row]+1];

    return cell;
}

cellRow(...) の最初の行にデバッガを配置しようとしましたが、プログラムはそこに入りません。非常に単純なことを忘れているように感じますが、何がわからないようです。

誰か助けてくれませんか?

4

1 に答える 1

0

新しいセルを開始することはありません。次のような行を追加する必要があります。

if (nil == cell)
    cell = [[UITalbeViewCell alloc] init...

への電話の後

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TopListCellIdentifier];
于 2012-04-13T17:41:45.267 に答える