2009-06-20 34 views
0

快速之一。我忽略了一些東西...從NSTableView中的數組中刪除對象

我有一個從NSDictionary中的數組構建的分組表視圖。每個數組都是表格的一部分。當在編輯模式和用戶點擊「刪除」我打電話

- (void)removeObject:(MyClass *)myObject 

如何確定發送消息,該消息數組[myArray的的removeObject:myObject的]? NSDictionary沒有indexOfObject:方法,但NSArray沒有。我想我可以遍歷每個數組尋找所述對象,但這看起來不正確。

請問有人可以打攪我的大腦嗎?!?謝謝!

回答

0

您可以實現標準的UITableView協議,並使用此方法:

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath { 
    <br><br>//check the section according to your array, if(indexPath.section ==.... 
    <br><br> 
    if(editingStyle == UITableViewCellEditingStyleDelete) { 
    <br> 
    [arrayFoundBefore removeObjectAtIndex:indexPath.row]; 
    <br> 
    } 
    <br>} 

我認爲這是應該做的方式,不知道雖然。任何人都可以澄清?

0

您應該知道哪個tableView發送了消息(因爲所討論的方法在該對象的委託中) - 因此您可以在tableView委託的viewDidLoad方法中創建該數組,或者選擇哪一個它基於委託上下文。

0

我沒有看到任何明顯的錯誤迭代通過數組。人們多長時間刪除一些東西,而且字典是否真的足夠大,足以使這成爲一項重大的開銷?

作爲一個參考點,NSArray的indexOfObject:方法並沒有比遍歷數組尋找一個匹配對象更有趣。