2011-04-26 93 views
0

我有一個tableview,在NSMutableArray內部有由NSMutableDictionaries填充的自定義單元格。具有雙值的TableView單元格

現在,我想檢查[email protected]"Location"上方的單元格當前正在填充。因爲,如果該位置相同,那麼下面的單元格應該留下一些標籤blanco。

例如:

[Thing on location: Building A has problem X] 
[  and problem Y ] 
[Thing on location: Building B has problem X] 

(是的,我知道,表的一個貧窮的 '圖紙',哈哈)。

不管怎樣,在cellForRowAtIndexPath我已經試過代碼:

if ((indexPath.row - 1) > -1) 
    { 
     NSString *eerste = [[NSString alloc] initWithFormat:@"%@", [[lijstErrors objectAtIndex:(indexPath.row - 1)] objectForKey:@"Location"]]; 
     NSString *tweede = [[NSString alloc] initWithFormat:@"%@", [incInRow objectForKey:@"Location"]]; 
     NSLog(@"Comparing %@ met %@", eerste, tweede); 
    } 

的問題是,它永遠不會被調用。我的猜測是,cellForRowAtIndexPath不是每次填滿單元格時調用的?任何提示?

+0

你能if語句之前轉儲'indexPath.row'?並滾動,這看起來是正確的,仍然沒有人知道... – 2011-04-26 08:59:22

回答

0

不,每次繪製單元時都會調用它。將tableView的委託設置爲承載tableview的實例:在大多數情況下,它是自己的。

+0

這樣做了,並正確查看錶。但是,我的第一篇文章中提到的NSLog從未被調用過。如果我放置一個新的NSLog(@「Test」);上面它,測試得到記錄,但不是比較:(任何想法? – Joetjah 2011-04-26 08:52:54

+0

啊你的意思是'((indexPath.row - 1)> -1)'?我想我錯了我認爲這裏根本是錯誤的 – 2011-04-26 08:57:19

+0

是的,那個沒有被記錄,但是當我停止測試一個負數時它就解決了!感謝您的反饋:) – Joetjah 2011-04-26 09:00:08

1

這是應該調用的,如果不是,可能是你忘記設置dataSource。然後嘗試

myTableView.dataSource =self; 

嘗試以下:

if ((indexPath.row - 1) >= -1) 
+0

@Joetjah:檢查更新的答案... – Jhaliya 2011-04-26 09:01:32