我看过类似的线程并阅读它们但我仍然无法使其工作。因此我决定在这里发布我的代码,以防有人可以帮助我。我试图在ViewController中创建一个tableview。我正在使用Xcode 4.5和故事板。
prodViewController.h
#import <UIKit/UIKit.h>
@interface prodViewController : UIViewController <UITableViewDelegate , UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UIView *prodview;
// properties of ui
@property (strong, nonatomic) IBOutlet UIImageView *image;
@property (strong, nonatomic) IBOutlet UILabel *namelbl;
@property (strong, nonatomic) IBOutlet UILabel *manufactlbl;
@property (strong, nonatomic) IBOutlet UILabel *scorelbl;
@property (strong, nonatomic) IBOutlet UILabel *dscrlbl;
@property (strong, nonatomic) IBOutlet UILabel *videolbl;
// properties of tab bar
@property (strong, nonatomic) IBOutlet UITabBarItem *addfav;
@property (strong, nonatomic) IBOutlet UITabBarItem *compare;
@property (strong, nonatomic) IBOutlet UITabBarItem *more;
// table
@property (strong, nonatomic) IBOutlet UITableView *tableview;
@end
prodViewController.m
#import "prodViewController.h"
@interface prodViewController ()
@end
@implementation prodViewController
@synthesize tableview;
@synthesize prodview;
@synthesize addfav;
@synthesize compare;
@synthesize more;
@synthesize image;
@synthesize namelbl;
@synthesize manufactlbl;
@synthesize scorelbl;
@synthesize dscrlbl;
@synthesize videolbl;
- (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.
[tableview setDataSource:self];
[tableview setDelegate:self];
}
- (void)viewDidUnload
{
[self setAddfav:nil];
[self setCompare:nil];
[self setMore:nil];
[self setProdview:nil];
[self setTableview:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
@end
TableView连接:
错误:
[prodViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x683a5b0
2*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[prodViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x683a5b0'
新错误:
如果我删除已实现的表方法,以便故事板实现只有效,我仍然会收到此错误:
-[prodViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6c34c80
答案 0 :(得分:3)
方法名称区分大小写。第一部分必须是tableView:...
(V
是大写字母),但您全部都是小写的:tableview:...
。
答案 1 :(得分:1)
你应该摆脱接口文件中的方法声明。
协议是定义UITableViewDatasource
或UITableViewDelegate
。
您是否从项目的某个位置手动调用这些方法?方法tableView:numberOfRowsInSection:
只能由tableview调用。你不应该自己打电话。
修改强>
此外,您不需要在viewDidLoad
中设置数据源和委托,您已经在InterfaceBuilder中进行了此操作。
好像你在这里遵循一个非常古老的教程。我建议您查看更新的教程。
Ray Wenderlich's site始终是个好地方。