當我描述tableView.datasource = self
,
應用程序異常結束與signal SIGABRT(unrecognized selector sent to instance)
。
當我擦除tableView.datasource = self
,
該應用運行但數據源的方法(cellForRowInSection
等)不被反射。tableView.datasource =自錯誤:無法識別選擇
要管理tableView
,我使用了UIViewController
子類。
該視圖由多個子視圖組成,其中只有一個是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
return 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
return [_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'
謝謝。
用完整的錯誤更新您的問題。 – rmaddy
你能寫出什麼是無法識別的選擇器? 是'count'?我敢打賭,它是一個友善的夥伴 – KIDdAe
僅供參考 - 擺脫對「@綜合」的呼籲 - 這是不需要的。同時擺脫對「@私人」的呼叫。 '@ implementation'塊中的任何ivars都是私有的。 – rmaddy