我有一個自定義的UIView,MyView,它有幾個tableviews - tv1和tv2 - 都以編程方式添加。ViewController作爲自定義視圖的tableview的代表
我有一個自定義的UIViewController,MyController,它在loadView上創建MyView的一個實例。
我的目標如下。 myView應該是myView.tv1的數據源和委託,因爲它不會觸及我的數據模型並且是靜態的。
myController應該是myView.tv2的委託,因爲它的內容將取決於數據源。
我已加入下列到每個報頭:
@interface MyController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@interface MyView : UIView <UITableViewDelegate, UITableViewDataSource>
,並添加到每個所要求的委託方法。
在MyView的的init,我再補充一點意見表中,並設置第一個自我的代表:
tv1 = [[UITableView alloc] initWithFrame:frame1 style:UITableViewStyleGrouped];
tv1.delegate = self;
tv1.datasource = self;
tv2 = [[UITableView alloc] initWithFrame:frame2 style:UITableViewStyleGrouped];
在我控制我連接了第二個實現代碼如下:
- (void)loadView{
self.view = [[MyView alloc] initWithFrame:myFrame];
[(MyView *)self.view tv2].delegate = self;
[(MyView *)self.view tv2].dataSource = self;
}
當我運行這個時,我遇到了一大堆運行時錯誤。有時它會抱怨分頁控制,其他時候NSCFArray,其他時候根本沒有文字。它總是崩潰。
我確定它是設置導致問題的數據源而不是委託。如果我在laodView中註釋掉數據源行,它運行良好(但當然沒有內容)。
什麼可能導致我每次都遇到不同的運行時錯誤,以及我可能在哪裏出錯?
通常(根據我的經驗)獲取各種崩潰錯誤消息與內存有關。你是否嘗試過評論其中一個表視圖的實現,並試圖讓他們每次工作1?如果你可以縮小到哪個tableview(或者兩者)是問題,那將有助於解決問題。 – WendiKidd
要補充@WendiKidd的評論,請查看運行靜態分析器是否有幫助。 – Danra
謝謝 - 我看到很多「[ numberOfSectionsInTableView:]:無法識別的選擇器發送」消息,其中空白是__NSCFType,NCSFArray等我不知道從哪裏開始,因爲我使用ARC。 –