2012-05-03 115 views
0

我想縮小我在我的iOS應用程序中有2個單獨的UITableView實例的問題。也許我在UITableViews上設置了一個不好的屬性,或者它可能是其他的東西,但是這兩個都是我的症狀,盡我所能。UITableView ::實例化上的錯誤(詳細描述裏面)

當第一次創建並加載數據表時,會發生以下兩個錯誤。但是,如果我拖動並釋放(從而成功滾動表格,即使是一點點),這兩個錯誤也會立即消失。

  • 我不能對任何行的挖掘(委託回調永遠不會發送)
  • 未出現任何數據(如果表是空的)

同樣,這兩個漏洞的立即消失只要我嘗試拖動桌子。我還應該提到他們不會100%的時間發生。我猜這可能意味着我錯過了某種競爭條件。

這些表以編程方式實例化UITableView的子類(通過initWithFrame :)。這是我在子類中重寫的構造函數:

- (id) init 
{ 
if((self = [super initWithFrame:CGRectMake(0, 0, POST_WIDTH, 0)])) 
{ 
    self.scrollsToTop = YES; 
    self.dataSource = self; 
    self.delegate = self; 
    self.rowHeight = POST_DEFAULT_HEIGHT; 
    self.delaysContentTouches = YES; 
    self.backgroundColor = [UIColor clearColor]; 
    self.separatorColor = [UIColor clearColor]; 
    self.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 2); 
    self.showsVerticalScrollIndicator = NO; 
} 
return self; 
} 

回顧一下:零個,一個或兩個以上2條蟲子隨機出現在其創建的每個表,但消失時甚至滾動表略。

感謝您的耐心,因爲我很爲難:(

FWIW,它發生在iPhone和iPad,包括模擬器,運行iOS5。

+0

顯示您code..plz – adali

+0

一些代碼編輯。當然有很多委託方法等等,但是很少會粘貼大量的大文件,這是我可以提供的最相關的。 –

+0

self.dataSource = self;和self.delegate = self;作爲UITableView的子類?這聽起來像一個可怕的想法,你應該有一個UITableViewController,並從那裏設置你的tableview的委託和數據源。 –

回答

1

我假設你的問題是由於數據源和委託。嘗試設置您的數據源和委託類,你創建和使用您的tableView。

更改下面的代碼從子類

self.dataSource = self; 
self.delegate = self; 

超一流這樣

tableView.dataSource = self; 
tableView.delegate = self; 
+0

啊,是的。當我重構某些東西時,我發現我很sl and,而且我的鼻子很長,以至於我完全錯過了* facepalm * –