0

假设我有一个名为的对象ColorHolder,其中一个属性是一个UIColor值。假设我也有一个NSMutableArray存储一些UIColors的,我们称之为colors。我用数组中的值初始化一个ColorHolder对象,如下所示:

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

现在在程序稍后的某个时间点,用户colors在同一索引 5 处更改值。我想要的是ColorHolder我在上面初始化的对象,因为它的颜色值在其相应值发生变化时也会发生colors NSMutableArray变化。如何以这种方式设置指针以使其发生?

4

1 回答 1

2

您设置字体的视图(以及任何设置的 FontHolder)不会“观察”字体数组的更改,并且 UIFont 类是不可变的。

您将需要使用 NSNotificationCenter 添加一个观察类来监视这个数组并向感兴趣的视图(和/或 FontHolder(s))发送通知。

这是一个经典的观察者模式。

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

上面的博客不是您的代码的复制和粘贴答案,但我提供它是为了提供有关一般模式的信息。

此外,如果您真的不需要更新视图,您可以简单地告诉 FontHolder 在用户对其进行更改时从字体数组中刷新自身。如果只有一个观察者,这是实现观察者模式的一种廉价方式。

于 2012-10-21T01:33:09.280 回答