そのため、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(...) の最初の行にデバッガを配置しようとしましたが、プログラムはそこに入りません。非常に単純なことを忘れているように感じますが、何がわからないようです。
誰か助けてくれませんか?