2012-05-04 88 views
0

我有一個包含UITableView的View Controller,它使用NSMutableArray通過通常的UITableViewDelegate和UITableViewDataSource方法來確定其內容。當數組發生變化時自動更新UITableView

在過去,我使用NSFetchedResults控制器來更新TableView作爲其查詢結果更改的結果。在這種情況下,我想適當地更新UITableView,因爲項目添加到陣列或從陣列中刪除。

我該如何處理?我應該使用addItem/removeItem方法將NSMutableArray包裝到模型類中,該方法使用委託或通知在UITableView上觸發reloadData?還是有更優雅的解決方案?

陣列中最多有20個項目,所以性能並不是什麼大問題。

+1

nsmutableArray是您想要做的事的好選擇 –

回答

0

看來,NSArrayController是我想要的,但它不適用於iOS,所以它看起來像KVO是我最好的選擇。

1

警告:非ARC例如

你可以設置,你的tableview中使用的屬性

//.h 

..... { 

    NSArray* array_; 

} 

@property (nonatomic, retain) NSArray* array; 

//.m 

數組合成陣列

@synthesize array = array_; 

我們感興趣的是,當陣列改變以覆蓋setter方法

-(void)setArray:(NSArray*)array { 
    if (array_ != array) { 
     [array_ release]; 
     array_ = [array retain]; 
     [self.tableview reloadData]; 
    } 
} 

然後,無論何時修改您的tableview數據,array:在修改數據的末尾。

self.array = newArray; 

由於這是一個屬性外部類/視圖將能夠修改數組,該表將更新。

相關問題