0

オブジェクトを fetchedResultsController からカスタム セルに送信したいと考えています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
        TWMainViewExpandedCell *cell = (TWMainViewExpandedCell *)[tableView dequeueReusableCellWithIdentifier:StandardExpandedCellIdentifier];

        if (cell == nil) {
            cell = (TWMainViewExpandedCell *)[[[NSBundle mainBundle] loadNibNamed:@"MainViewStandardCellExpanded" owner:self options:nil] objectAtIndex:0];
        }

        Work *work = [_fetchedResultsController objectAtIndexPath:indexPath];
        cell.workInfo = work; // <- NSLog work.description confirms object exists!
        return cell;
// ...
}

そして、カスタム セルの .h および .m ファイルから

.h

@property (strong, nonatomic) Work *workInfo;

.m

- (void) awakeFromNib {
    // ...
    NSLog(@"%@", _workInfo); // <- why is this nil?
    // ...
}

_workInfo は nil を返しています! 私はここで何を見逃していますか?オブジェクトをカスタム セルに渡すにはどうすればよいですか?

テキスト ラベルを完全に設定できますが、FRC からオブジェクトを送信できませんか?

ありがとうございました!

4

1 に答える 1

1

awakeFromNib設定する前に発生しますworkInfo(セルが再利用されている場合はまったく呼び出されません)。ここで行う通常のことは、次のworkInfoようなカスタム プロパティ セッターを作成することです。

- (void)setWorkInfo:(Work *)work
{
    if (_work != work) {
        _work = work;
        //make any Work-related updates to the cell here
    }
}

セッター内のセルに Work 関連の更新を行います。

于 2013-07-24T14:40:52.343 に答える