Objective-C将UITableView代理和数据源拆分为独立类报错如何解决?
问题原因及解决方案
- 缺少UIKit框架导入
你当前头文件仅引入了Foundation框架,而UITableViewDelegate、UITableViewDataSource两个协议都属于UIKit框架的定义范畴,没有导入UIKit时编译器无法识别这两个协议,会出现类型识别偏差的报错。
你可以将第一行的导入语句替换为UIKit的导入:
#import <UIKit/UIKit.h>
- 检查类继承声明一致性
你贴出的头文件中声明TableViewDataSourceDelegate继承自NSObject,但报错提示该类的父类是UIViewController,请同步检查你的.m实现文件中类的继承声明是否和头文件一致,以及是否存在同名类冲突的问题,确保.h和.m中类的父类声明完全匹配。
修改后完整的正确头文件代码如下:
#import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface TableViewDataSourceDelegate : NSObject <UITableViewDelegate, UITableViewDataSource> @end NS_ASSUME_NONNULL_END
内容的提问来源于stack exchange,提问作者stefanosn
相关产品推荐
相关产品推荐

