0

我正在尝试保存自定义单元格对象,然后再显示它们。但是我完全无法理解机制:

- (id)initWithCoder:(NSCoder *)decoder {
    if((self = [super init])) {
        self.action = [decoder decodeObjectForKey:@"action"];
    }
    return self;
}

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {

    }
    return self;
}

这样我就可以解码我的变量,但表格单元根本不显示。如果我用编码器删除初始化,我确实会显示我的表格单元界面,但无法解码变量。我应该怎么做才能完成这项工作?

4

1 回答 1

0

我想我可以看到你的问题。仍然,您不应该保存单元格本身。只需创建一个 UITableViewCell-Subclass 接受一个对象,它将从中收集其所有内容。如果你需要不止一堂课,那也很好。您可以轻松地为多个用例创建多个子类。然后只需保存数据对象并在您再次需要它们时重新创建单元格。这样做的原因是您的方式会产生大量开销,因为您正在尝试保存构成单元格的所有 UIview、Lables 等。此外,UITableVIews 是高度优化的,并尝试重用与您的方法不兼容的现有单元格。

TL;DR:您需要数据对象,可以将其保存在 keyedArchivers 中,并且您需要接受这些对象并显示必要数据的 tableviewcells。说真的,你会省去一些麻烦。让我知道您是否需要帮助并玩得开心

于 2013-05-15T13:16:09.483 回答