UITableView设置独立的委托对象?

问题描述:

我已经使用UITableView安装了一个示例应用程序。最初我通过将我的控制器符合<UITableViewDelegate><UITableViewDataSource>,在IB中添加了tableView并将“数据源”&“委托”连接到文件所有者来完成此操作。这一切都很有效。UITableView设置独立的委托对象?

我一直在尝试为代表创建自己的类。我创建了一个新类并添加了<UITableViewDelegate><UITableViewDataSource>,但很快发现我无法连接tableView> dataSource/delegate。为了解决这个问题,我在IB中添加了一个“对象”(NSObject),并将其设置为我的新类。然后我将dataSource和delegate插座连接到这个对象。它有点作品,应用程序运行并显示tableView,但是当我尝试滚动表格时,应用程序崩溃。我能否问我是否正确地采取这种方式?

加里

+0

嗯,我认为我的问题是,因为我只是在IB中添加了一个NSObject,并将它分配给我的类获取发布。我会将我的类作为实例变量添加到我的视图控制器,并将@property(保留)/合成到那里? – fuzzygoat 2010-05-07 11:54:15

+0

你能发布崩溃日志吗?也许有一个强制性的方法没有实现,或返回值无效。 – 2010-05-07 12:00:58

+0

因为IB正在发布我的委托/数据源对象,所以崩溃了。我需要制定一种通过Xcode保持它的方式。 – fuzzygoat 2010-05-07 12:19:08

你正在做正确的事情,让您的类的实例到笔尖文件。我始终使用该方法来处理NSTableView数据源。您的问题是可能您没有正确初始化数据源/委托ivars对于在笔尖中的对象。例如,如果你在某个init方法中有一个NSArray被分配了,init方法可能不会被调用。你需要发布一些代码来确认这一点。

无论如何,尝试在您的新类中创建一个名为awakeFromNib的方法,并在其中进行初始化。