0

ColorHolderプロパティの 1 つが値であるという名前のオブジェクトがあるとしUIColorます。NSMutableArrayを格納するもあるとします。UIColorsそれを と呼びましょうcolorsColorHolder次のように、配列の値でオブジェクトを初期化します。

[[ColorHolder alloc] initWithColor: [self.colors objectAtIndex:5]];

プログラムの後のある時点で、ユーザーはcolors同じインデックス 5 で値を変更します。私が望むのは、ColorHolder上で初期化したオブジェクトで、対応する値が変更されたときに色の値も変更されるようにすることcolors NSMutableArrayです。このようにポインタを設定するにはどうすればよいですか?

4

1 に答える 1

2

フォント(およびそれが行うFontHolder)を設定したビューは、フォント配列への変更を「監視」しておらず、UIFontクラスは不変です。

NSNotificationCenterを使用して、この配列を監視し、関心のあるビュー(および/またはFontHolder)に通知を送信する監視クラスを追加する必要があります。

これは古典的なオブザーバーパターンです。

http://blog.csdn.net/dadalan/article/details/4240733

上記のブログはあなたのコードのコピーアンドペーストの答えではありませんが、私は一般的なパターンに関する情報のためにそれを提供します。

また、ビューを更新する必要が本当にない場合は、ユーザーがフォント配列に変更を加えたときに、フォント配列から自分自身を更新するようにFontHolderに指示するだけで済みます。オブザーバーが1つしかない場合は、オブザーバーパターンを実装するための安価な方法です。

于 2012-10-21T01:33:09.280 に答える