2012-05-04 10 views
0

通常のUITableViewDelegateメソッドとUITableViewDataSourceメソッドを使用してNSMutableArrayを使用してコンテンツを判別するUITableViewを含むView Controllerがあります。Arrayが変更されたときに自動的にUITableViewを更新します。

以前はNSFetchedResultsコントローラを使用して、クエリ結果が変更された結果としてTableViewを更新しました。この場合は、項目が配列に追加されたり削除されたりすると、UITableViewを適切に更新したいと考えています。

どうすればよいですか?私はモデルクラスのNSMutableArrayを委譲または通知を使用してaddItem/removeItemメソッドでラップすると、UITableViewでreloadDataをトリガする必要がありますか?または、より洗練されたソリューションがありますか?

アレイ内に最大20個のアイテムがあるため、パフォーマンスはあまり問題になりません。

+1

nsmutableArrayは、あなたがしたいことに適しています –

答えて

0

NSArrayControllerは私が欲しいものですが、iOSでは使用できませんので、KVOのように見えます。

1

警告:非ARC例

あなたは、あなたのテーブルビューが配列我々が興味を持っている配列

@synthesize array = array_; 

を合成プロパティとして

//.h 

..... { 

    NSArray* array_; 

} 

@property (nonatomic, retain) NSArray* array; 

//.m 

を使用して配列を設定することができ変更はセッターメソッドをオーバーライドします

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

テーブルビューデータを変更するたびに、array:データの変更の最後に。

self.array = newArray; 

外部クラス/ビューはプロパティを変更することができ、テーブルが更新されます。

関連する問題