2010-05-07 92 views
1

我已經使用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

回答

1

你正在做正確的事情,讓您的類的實例到筆尖文件。我始終使用該方法來處理NSTableView數據源。您的問題是可能您沒有正確初始化數據源/委託ivars對於在筆尖中的對象。例如,如果你在某個init方法中有一個NSArray被分配了,init方法可能不會被調用。你需要發佈一些代碼來確認這一點。

無論如何,嘗試在您的新類中創建一個名爲awakeFromNib的方法,並在其中進行初始化。