IOS设计模式第八篇之键值观察模式
2013-12-27 16:55
330 查看
键值观察模式:
在KVO,一个对象可以要求被通知当他的某个特殊的属性被改变了。自己或者另一个对象。如果你感兴趣你可以阅读更多的信息参考: Apple’s KVO Programming Guide.
怎么用KVO设计模式呢?
正如上面提及到的。这个KVO机制允许一个对象观察一个属性的改变。在你的例子。你可以用KVO来观察你UIImageView图片属性的改变。
打开AlbumView添加下面代码到initWithFrame:albumCover:在 [self addSubview:indicator];后面;
[coverImage addObserver:self forKeyPath:@"image" options:0 context:nil];
这个self是当前的类,作为一个观察coverImage Image属性的观察者。
在本类销毁的时候你还需要注销观察者在AlbumView实现文件里面添加下面的代码:
- (void)dealloc
{
[coverImage removeObserver:self forKeyPath:@"image"];
}
最后添加下面的方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"image"])
{
[indicator stopAnimating];
}}
你必须在某个观察者类里面实现这个方法。这个系统执行这个方法每次你观察你的属性改变的时候。上面的代码。当你图片属性改变的时候这个网络提示器就会改变。
编译运行你的应用这个网络提示器消失了。
![](http://images.cnitblog.com/blog/306023/201312/24114850-f5b90d8fd3f941d5bb3a07921751d71c.png)
注意:记得要删除你的观察家们当他们收回,否则你的应用程序会崩溃当系统试图将消息发送到这些不存在的观察者!
如果你在你的应用程序并终止它,你会注意到你的应用程序的状态并没有保存。最后一个相册你看不会应用程序启动时的默认专辑。
为了纠正他你需要用下一个设计模式备忘录设计模式。
在KVO,一个对象可以要求被通知当他的某个特殊的属性被改变了。自己或者另一个对象。如果你感兴趣你可以阅读更多的信息参考: Apple’s KVO Programming Guide.
怎么用KVO设计模式呢?
正如上面提及到的。这个KVO机制允许一个对象观察一个属性的改变。在你的例子。你可以用KVO来观察你UIImageView图片属性的改变。
打开AlbumView添加下面代码到initWithFrame:albumCover:在 [self addSubview:indicator];后面;
[coverImage addObserver:self forKeyPath:@"image" options:0 context:nil];
这个self是当前的类,作为一个观察coverImage Image属性的观察者。
在本类销毁的时候你还需要注销观察者在AlbumView实现文件里面添加下面的代码:
- (void)dealloc
{
[coverImage removeObserver:self forKeyPath:@"image"];
}
最后添加下面的方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"image"])
{
[indicator stopAnimating];
}}
你必须在某个观察者类里面实现这个方法。这个系统执行这个方法每次你观察你的属性改变的时候。上面的代码。当你图片属性改变的时候这个网络提示器就会改变。
编译运行你的应用这个网络提示器消失了。
![](http://images.cnitblog.com/blog/306023/201312/24114850-f5b90d8fd3f941d5bb3a07921751d71c.png)
注意:记得要删除你的观察家们当他们收回,否则你的应用程序会崩溃当系统试图将消息发送到这些不存在的观察者!
如果你在你的应用程序并终止它,你会注意到你的应用程序的状态并没有保存。最后一个相册你看不会应用程序启动时的默认专辑。
为了纠正他你需要用下一个设计模式备忘录设计模式。
相关文章推荐
- IOS设计模式第八篇之键值观察模式
- IOS设计模式第八篇之键值观察模式
- Cocoa中的设计模式(MVC模式\委托模式\键值观察模式)
- Objective-c中的键值观察设计模式
- iOS设计模式之KVO Key-Value Observing 键值观察者模式的简单实用和介绍
- iOS设计模式 - 外观
- IOS设计模式的六大设计原则之单一职责原则(SRP,Single Responsibility Principle)
- iOS中的触摸事件(TouchView) - (代理响应) - (实现touch的按钮化)(target/action设计模式,代理设计模式)重点
- 【读书笔记】iOS-设计模式
- iOS 设计模式系列:Adapter – 适配器模式
- iOS几种设计模式 -通知简介
- iOS开发笔记 4、iOS中的Cocoa、设计模式等
- iOS代理设计模式
- 关于iOS六大基本设计模式
- iOS设计模式 - 命令
- iOS设计模式 - (2)UML类间关系精解
- IOS开发中的几种设计模式介绍
- iOS设计模式 - (4)策略模式
- IOS设计模式之三(适配器模式,观察者模式)
- iOS中的MVVM设计模式