gpt4 book ai didi

ios - 使用自定义对象初始化自定义 UITableViewCell

转载 作者:行者123 更新时间:2023-11-29 00:41:15 25 4
gpt4 key购买 nike

我有一个 Post 对象,我正在尝试用它初始化一个 PostTableViewCell。下面是我在我的 View Controller 中所做的 -

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *identifier = @"Post";
Post *post = [self.posts objectAtIndex:indexPath.row];
PostTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:identifier];

cell.post = post;

return cell;
}

cellForRow 中,对象使用所有正确的数据实例化。为什么在执行 awakeFromNibPostTableViewCell.h 中的 Post 属性为 nil?

PostTableViewCell.h 我有 -

@property (strong, nonatomic) Post *post;

最佳答案

调用 awakeFromNibpostnil 的原因是该属性尚未设置。 UITableView 处理表格 View 单元格的实例化,这发生在您调用 dequeueReusableCellWithIdentifier: 之前的某个时间。您在单元格实例化后 设置单元格的 post 属性。

您要做的是覆盖 PostTableViewCell.m 中的方法 -(void)setPost:(Post *)post。这是设置属性时自动调用的属性的 setter 。

- (void)setPost:(Post *)post {
if (post != _post) {
_post = post;
[self updateCellAppearance]; // Your own method that updates the cell's data and appearance as needed
}
}

关于ios - 使用自定义对象初始化自定义 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39456345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com