UITableView创建

时间:2011-03-29 00:20:45

标签: iphone ios4 iphone-sdk-3.0

所以在我的视图控制器中,我试图在我的视图中添加一个表视图。我已经为它创建了一个属性,在我的viewDidLoad方法中,我正在初始化它,

//Setup the table view
self.myTableView = [[UITableView alloc] initWithFrame:CGRectMake(160, 183, 320, 367) style:UITableViewStylePlain];
self.myTableView.dataSource = self;
self.myTableView.delegate = self;

[self.view addSubview:myTableView];

但由于某种原因,我收到以下错误,

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "MyViewController" nib but the view outlet was not set.'***

我的nib文件中没有IBOutlet的设置或任何表视图,为什么我会收到此错误?

2 个答案:

答案 0 :(得分:2)

此错误未连接到myTableView属性。您的项目中有一个名为MyTableView的笔尖正在尝试加载,但是由于没有连接viewController(很可能是“文件所有者”)的“视图”插座而出现问题。如果你连接它,它应该没问题。

此外,除非您将第一行代码更改为:

,否则您将泄漏内存
self.myTableView = [[[UITableView alloc] initWithFrame:CGRectMake(160, 183, 320, 367) style:UITableViewStylePlain] autorelease];

分配内容时,必须在完成后释放它(在设置myTableView属性时再次保留该对象。)

答案 1 :(得分:0)

在IB中需要完成几件事情才能让表格视图正确加载声音,因为nib文件正在加载,因为它们没有为界面构建器中的视图设置插座。在IB中尝试控制从文件所有者拖动到表视图,当菜单弹出时选择view.This将UItableViewController的view属性设置为tableview。

不确定但要尝试一下。