私のiPhoneアプリケーションでは、アイテムのリストがアイテムのリストに含まれているときにテーブルビューをリロードしたいと思います(このリストはアプリケーションのNSMutableArrayプロパティです)。デリゲート)が変更されます。
どうすればいいですか?
最初はNSTimerのものですが、これは正しい方法ではないと思います... 5月KVOパターンはトリックですか?アプリケーションのデリゲートプロパティが変更されたときにUITableControllerのテーブルビューをリロードします
答えて
KVOは行く方法ですが、KVC/KVOメカニズムが動作するように、適切なアクセサを使用して配列を変更する必要があります。
少なくとも、mutableArrayValueForKey:
によって返された可変プロキシを使用してNSMutableArray
プロパティを変更します。 Apple's documentation suggests that you go further:
あなたが強く、むしろ 直接変更可能なセットを返すアクセサに頼るよりも、これらの可変アクセサを実装することをお勧めします。関係の中の データに変更を加えるときは、 変更可能アクセサがはるかに効率的です。
-insertObject:in<Key>AtIndex:
または-insert<Key>:atIndexes:
:キーと値の変更可能なため準拠したコーディングであるためにでは、次のメソッドを実装する必要があり 対多の関係を命じました。これらのメソッドの少なくとも1つを実装する必要があります。これらは、 NSMutableArrayメソッド
insertObject:atIndex:
およびinsertObjects:atIndexes:
に類似しています。
-removeObjectFrom<Key>AtIndex:
または-remove<Key>AtIndexes:
。これらのメソッドの少なくとも1つを実装する必要があります。これらのメソッドは、それぞれ NSMutableArrayメソッドremoveObjectAtIndex:
とremoveObjectsAtIndexes:
に対応します。
-replaceObjectIn<Key>AtIndex:withObject:
または-replace<Key>AtIndexes:with<Key>:
です。オプション。ベンチマークによってパフォーマンスが問題であることが示された場合に実装します。は
-insertObject:in<Key>AtIndex:
方法は インサートにオブジェクトを通過し、それが 挿入するインデックスを指定NSUInteger
れます。-insert<Key>:atIndexes:
メソッドは、 オブジェクトの配列を、渡されたNSIndexSet
で指定されたインデックスでコレクションに挿入します。これら2つの方法のいずれかを実装するだけで済みます。 メソッド。
そして、これは私のお勧めであると私は最善の方法は非常に確信しています。
- 1. テーブルビューのセルが押されたときにビューを変更しますか?
- 2. データ変更後にテーブルビューがリロードされない:IOS 5
- 3. ClockKit - ヘルスキットデータが変更されたときにタイムラインをリロードする
- 4. Javafxテーブルビューの変更リストが頻繁に変更されます
- 5. ページがリロードされるときに変数の値が変更される
- 6. デリゲートプロパティを宣言したときのエラー
- 7. テーブルビューがテーブルビューに戻った後にテーブルビューをリロードする
- 8. HTMLElement.prototype.addEventListenerが変更されたときに角2のアプリケーションが中断します
- 9. データが変更されたときに画面をリロード - ネイティブアプリに反応する
- 10. jQueryの場所、ウィンドウの幅が変更されたときにリロード
- 11. ボタンがクリックされたときにテーブルビューでボタンイメージを変更する方法
- 12. iPhone - 触れたときにテーブルビューのセルの高さを変更する方法
- 13. NSPredicateの後でテーブルビューのデータをリロードした後にアプリケーションがクラッシュする
- 14. セルを削除した後、即時テーブルビューがリロードされない
- 15. 最後のスタティックセルセパレータラインは、テーブルビューをリロードした後に表示されます
- 16. .confが変更された場合のみapache2をリロードするか、アプリケーションコードが変更された場合に使用することができますか?
- 17. キーボードが表示され、隠されているときのテーブルビューのサイズ変更
- 18. ダイナミックラベルの変更を作成するテーブルビューをリロードするiOS Swift
- 19. Gulp livereloadは、CSSのみが変更されたときにページ全体をリロードします
- 20. プロパティのプロパティが変更されたときに、オブジェクトインスタンスpropertyChangedを変更します。
- 21. 言語が変更されたときにフォームのサイズを変更します。
- 22. Tkinter:OptionMenuの選択が変更されたときにラベルを変更します。
- 23. 私のアプリが別のアプリケーションから起動されたときに相対パスが変更されました
- 24. AngularJSのページをリフレッシュまたはリロードするときにtemplateUrlが変更されます
- 25. アプリがバックグラウンドになるときに、アプリがスクロールして終了するまでにテーブルビューがリロードされる
- 26. gridviewアプリケーションに変更されました。
- 27. pyqt5テーブルビューでソートした後にテーブルビューが更新されない
- 28. ルートにナビゲートするときにアプリケーションがリロードされる
- 29. このコードは、ファイルが変更されたときにブラウザをリロードしませんか?
- 30. '小道具'が変更されたときに 'this'が変更されます