gpt4 book ai didi

ios - tableView.datasource = 自身错误 :unrecognized selector

转载 作者:行者123 更新时间:2023-11-28 22:14:32 28 4
gpt4 key购买 nike

当我描述tableView.datasource = self时,
应用程序异常终止 SIGABRT 信号(无法识别的选择器发送到实例)

当我删除 tableView.datasource = self 时,
应用程序运行但数据源方法(cellForRowInSection 等)未反射(reflect)出来。

为了管理 tableView,我使用了 UIViewController 子类。
View 由多个 subview 组成,其中只有一个是tableView

ViewController.h

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

ViewController.m

    @interface ViewController ()
@property (retain, nonatomic) UITableView *tableView;
@end
@implementation ViewController{
@private NSArray *_data1;
@synthesize tableView = _tableView;

- (void)viewDidLoad
{
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(-10, 70, 320, 480)];
_tableView.dataSource = self;
_tableView.delegate = self;
[self.view addSubview:_tableView];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [_data1 count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [_data1[section] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSString *data;
data = _data1[indexPath.section][indexPath.row];
cell.textLabel.text = data;
return cell;
}

错误信息------------

-tableView:numberOfRowsInSection返回1;

Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2903.23/UITableView.m:5261

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard’

-tableView:numberOfRowsInSection返回 [_data1[section]count]

[__NSCFConstantString count]: unrecognized selector sent to instance 0x100006930
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString count]: unrecognized selector sent to instance 0x100006930'

谢谢。

最佳答案

看到这个示例代码,我认为错误可能是 _data1[section] 不是能够使用选择器 count 的对象。

当您删除线程 _tableView.dataSource = self; 时,方法 tableView:numberOfRowsInSection: 不会被调用,您的应用也不会崩溃。

关于ios - tableView.datasource = 自身错误 :unrecognized selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045685/

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