AFNetworking を使用してデータ ソースからセルをロードする UITableViewController があります。データは非同期で読み込まれるため、新しいデータが読み込まれたときに tableView を更新するように通知を設定します。reloadTable は、新しいデータが到着するたびに呼び出され、オブジェクトのプロパティを更新しますが、それらのプロパティは cellForRowAtIndexPath に読み込まれません。
リロードテーブルに自分のプロパティを NSLog すると、それらは正しいです。しかし、私のcellForRowAtIndexPathでnullと言う
これが私のコードです...
これにより、オブジェクトが「シフト」してデータのロードが開始され、新しいデータがロードされてテーブルが更新されたときに通知を受け取ります。
NSDictionary *params = @{@"game_id":self.gameID, @"player_id":_sharedPlayer.playerID, @"category_id":self.categoryID};
_shifts = [[ClipShiftController alloc] init];
[_shifts fetchShifts:params];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reloadTable:)
name:@"clipLoaded"
object:nil];
これが私のreloadTableです:
- (void)reloadTable:(NSNotification *)notif
{
[self.tableView reloadData];
Clip *clip = [self.shifts.shiftDataSet objectAtIndex:i];
NSLog(@"clip counter %i",[self.shifts.shiftDataSet count]);
NSLog(@"clip name %@",clip.name);
i++;
}
ここに cellForRowAtIndexPath があります:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
Clip *clip = [_shifts.shiftDataSet objectAtIndex:indexPath.row];
NSLog(@"CELL COUNTER %i",[_shifts.shiftDataSet count]);
NSLog(@"CLIP CELL name %@",clip.name);
NSLog(@"row called");
cell.textLabel.text = @"hello";
//This is null cell.textLabel.text = clip.name;
return cell;
}
ここに私のコンソール出力があります
2013-08-26 12:16:50.831 One Six[15632:c07] clip counter 1
2013-08-26 12:16:50.831 One Six[15632:c07] clip name shift
2013-08-26 12:16:50.831 One Six[15632:c07] clip counter 2
2013-08-26 12:16:50.832 One Six[15632:c07] clip name shift
2013-08-26 12:16:50.832 One Six[15632:c07] clip counter 3
2013-08-26 12:16:50.832 One Six[15632:c07] clip name shift
2013-08-26 12:16:50.832 One Six[15632:c07] clip counter 4
2013-08-26 12:16:50.833 One Six[15632:c07] clip name shift
2013-08-26 12:16:50.833 One Six[15632:c07] clip counter 5
2013-08-26 12:16:50.833 One Six[15632:c07] clip name face off
2013-08-26 12:16:50.833 One Six[15632:c07] clip counter 6
2013-08-26 12:16:50.833 One Six[15632:c07] clip name face off
2013-08-26 12:16:50.834 One Six[15632:c07] clip counter 7
2013-08-26 12:16:50.834 One Six[15632:c07] clip name face off
2013-08-26 12:16:50.834 One Six[15632:c07] clip counter 8
2013-08-26 12:16:50.835 One Six[15632:c07] clip name shift
2013-08-26 12:16:50.835 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.835 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.836 One Six[15632:c07] row called
2013-08-26 12:16:50.836 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.836 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.837 One Six[15632:c07] row called
2013-08-26 12:16:50.838 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.838 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.838 One Six[15632:c07] row called
2013-08-26 12:16:50.839 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.839 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.839 One Six[15632:c07] row called
2013-08-26 12:16:50.840 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.840 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.841 One Six[15632:c07] row called
2013-08-26 12:16:50.841 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.841 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.842 One Six[15632:c07] row called
2013-08-26 12:16:50.842 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.844 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.844 One Six[15632:c07] row called
2013-08-26 12:16:50.845 One Six[15632:c07] CELL COUNTER 8
2013-08-26 12:16:50.845 One Six[15632:c07] CLIP CELL name (null)
2013-08-26 12:16:50.846 One Six[15632:c07] row called
表示されているのは、私のテーブル ビューに「hello」と表示されている 8 行です。