Ios 自定义 tableView:“XYZCustomCell”没有可见的@interface 声明选择器“initWithStyle:reuseIdentifier:”
Posted
技术标签:
【中文标题】Ios 自定义 tableView:“XYZCustomCell”没有可见的@interface 声明选择器“initWithStyle:reuseIdentifier:”【英文标题】:Ios custom tableView : No visible @interface for 'XYZCustomCell' declares the selector 'initWithStyle:reuseIdentifier:' 【发布时间】:2014-12-18 03:39:57 【问题描述】:我正在努力完成本教程:http://zeroheroblog.com/ios/how-to-create-simple-tableview-with-custom-cells
我被这个功能卡在了最后:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *cellIdentifier = @"Cell";
XYZCustomCell *cell = (XYZCustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil)
cell = [[XYZCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
XYZTextFieldFormElement *item = [self.formItems objectAtIndex:indexPath.row];
cell.labelField.text = item.label;
cell.valueField.delegate = self;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
在这一行:cell = [[XYZCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];我有错误写在主题标题中。
此外,没有找到 labelField 和 valueField。这是 XYZCustomCell.m 和 .h :
// XYZCustomCell.m
#import "XYZCustomCell.h"
@implementation XYZCustomCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
// Initialization code
return self;
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
[super setSelected:selected animated:animated];
// Configure the view for the selected state
@end
// XYZCustomCell.h
#import <UIKit/UIKit.h>
@interface XYZCustomCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UITextField *valueField;
@property (weak, nonatomic) IBOutlet UITextField *labelField;
@end
我很确定正确地遵循了教程的步骤。你知道错误可能来自哪里吗?
谢谢
【问题讨论】:
我不知道你为什么会得到那个错误,但是教程添加了无用的代码。当您注册 nib 时,就像作者在教程中所做的那样,单元格永远不会为 nil,因此完全不需要 if(cell == nil) 子句。如果您只需要一些用于您的单元的 IBOutlets,那么您也不需要 .m 文件中的任何代码。 尝试重启 Xcode。有时它会感到困惑。 感谢您的回答。当我重新启动 xcode 时,问题仍然存在,但是当我将 XYZCustomCell 替换为 UITableViewCell 时,它会编译。我不明白,XYZCustomCell 继承自 UITableViewCell,我将它导入到我的控制器中。 【参考方案1】:我进行了重构以删除类之前的所有 XYZ 前缀,它可以正常工作...
【讨论】:
这有什么帮助?然后你会丢失你的两个文本字段。以上是关于Ios 自定义 tableView:“XYZCustomCell”没有可见的@interface 声明选择器“initWithStyle:reuseIdentifier:”的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 的 ISearchResult TableView 中显示自定义背景图片