dequeueReusableCellWithIdentifier 加载旧单元格(具有不再存在的字段)

dequeueReusableCellWithIdentifier loads old cell (with fields that no longer exists)

我正在尝试从自定义 UITableViewCell (MyTableViewCell) 中删除字段,但是当我 运行 dequeueReusableCellWithIdentifier 并查看调试控制台时,它显示了我已删除的字段!

这里是调试控制台。你可以看到它的类型 MyTableViewCell

但是这里是 MyTableViewCell class。它没有字段 titleLabelgradientTitleBackgroundmyImageView。 (因为我已经删除了)

#import <UIKit/UIKit.h>
#import "RouteImageView.h"

@interface MyTableViewCell : UITableViewCell

@property (nonatomic, weak) IBOutlet RouteImageView *routeImageView;
@property (nonatomic, weak) IBOutlet UILabel *totalMilesLabel;
@property (nonatomic, weak) IBOutlet UILabel *progressLabel;
@property (nonatomic, weak) IBOutlet UIProgressView *progressView;

@property (nonatomic, weak) IBOutlet UIImageView *medalPlaceholder;
@property (nonatomic, weak) IBOutlet UIImageView *medal;

@end

接下来的两张照片展示了我的故事板配置。您可以看到我有一个带有重用 ID 的表格视图单元格:"walk_item",并且该单元格映射到 class MyTableViewCell...

我加载单元格的行(以及我读取调试控制台的行)在这里:

MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"walk_item"];

那么为什么单元格没有正确更新?这是一个问题,因为当我尝试添加新字段并将它们连接到 IABOutlet 时,程序崩溃并显示 EXEC_BAD_ACCESS!故事板和我的自定义 UITableViewCell class 之间的连接不正确。非常感谢任何有关如何调试的想法的建议。

使用 dequeueReusableCellWithIdentifier:forIndexPath 而不是简单的 dequeueReusableCellWithIdentifier。我在使用 table 函数时也遇到了奇怪的问题

MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"walk_item" forIndexPath:indexPath];

答案是做一个干净的构建。