我正在尝试在当前项目中创建一个简单的TableView。 但是我在IB中连接数据源并运行iOS模拟器后出现此错误。
2013-03-22 14:58:32.372 M[1875:c07] -[ViewController tableView:numberOfRowsInSection:]:
unrecognized selector sent to instance 0x88191f0
2013-03-22 14:58:32.374 M[1875:c07] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[ViewController tableView:numberOfRowsInSection:]:
unrecognized selector sent to instance 0x88191f0'
,但是当我在一个空项目中使用相同的代码创建一个简单的TableView时,它正在工作。
这是我的代码 “MCEventActivityViewController.h”
#import <UIKit/UIKit.h>
@interface MCEventActivityViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@end
“MCEventActivityViewController.m”
#import "MCEventActivityViewController.h"
@interface MCEventActivityViewController ()
@end
@implementation MCEventActivityViewController
{
NSArray *tableData;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
tableData = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
@end
有人可以帮我弄清楚这个错误出现的原因吗?
屏幕截图在这里。
编辑:
答案 0 :(得分:3)
确保,
1.TableView与XIB中的FileOwner连接。
2. @ interface Controller:UIViewController UITableViewDelegate,包含UITableViewDataSource。
3。Delegate
&amp; DataSource
都与FileOwner连接。
4. numberOfSections
返回1.
5. numberOfRowsInSection
返回[required]。
6。cellForRowAtIndexPath
{数据在这里......
}
编辑:
创建, @property(非原子,强)IBOutlet UITabelView * tableView;
并使用Fileowner将此Outlet连接到Xib
答案 1 :(得分:0)
将numberOfSectionsInTableView
方法添加到您的代码
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}
将NSArray *tableData;
添加到MCEventActivityViewController.h
并正确设置其@property
和@synthesize
。
并写
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.tableData = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", nil];
}
答案 2 :(得分:0)
您应该将( dataSource和委托)从Outlets链接到视图控制器不要查看!喜欢这些图片: