iOS kvo设计模式

作者: Figo_OU | 来源:发表于2015-07-05 08:52 被阅读970次

好久没有写文章了,都感觉对不住我的粉丝了。
好,今天就写写最近在开发的时候遇到的一些问题。这篇文章先介绍一下kvo设计模式。
kvo设计模式在很多文章都有提到过,但是我在查阅资料的时候,感觉这些文章写得都好乱,看来几篇的文章才明白要怎么设计。

  1. 首先,应该设计数据模型(model),例如本文的model是point
//point.h
@interface point : NSObject
@property (assign,nonatomic) int redp;
@property (assign ,nonatomic) int ooo;
//然而ooo这参数没什么用,只是用来观察当redp变量改变时,监听ooo会不会调用方法。
-(instancetype)initWithRedpoint:(int)po :(int)ooo;
@end

.m
#import "point.h"
@implementation point
-(instancetype)initWithRedpoint:(int)po :(int)ooo{
    if (self = [super init]) {
        self.redp = po;
        self.ooo = ooo;
    }
    return self;
}
@end

2.设置完model后,我们开始创建实例

.h
@property (strong,nonatomic) point * p;//写在.h文件上是为了其他的控制器可以对它赋值,以触发监听动作。
.m
_p = [[point alloc] initWithRedpoint:1 :1];//初始化
[_p addObserver:self forKeyPath:@"redp" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:NULL];
//监听当redp的值改变时,就触发处理方法。

3.设置处理方法,在.m文件下添加下面的方法。当p.redp的值被改变的时候,就会来到这个方法

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if([keyPath isEqualToString:@"redp"])
    {
        NSLog(@"修改了值%d",_p.redp);
        //[self done];
    }
}

4.可以在其他的控制器中修改p.redp的值,试试能不能调用方法吧。

  • 感觉已经写得很清楚了,就不把源码上传到github上了,如果大家有问题,可以留言或者简讯我。

相关文章

  • 常用设计模式整理

    ios面试题(整理) ios常用的设计模式有哪些? MVC模式、委托模式、观察者模式(kvo、kvc、通知机制)、...

  • iOS KVO,KVC

    iOS KVO,KVC KVO 1.KVO 是一种观察者设计模式,是利用 isa 混写机制来实现 KVO 的。 当...

  • 深入理解KVO机制

    什么是KVO机制 KVO,全称是key_value_Observing,是ios中的一种设计模式,名为观察者模式,...

  • iOS设计模式 —— KV0

    iOS设计模式 —— KV0 刨根问底KVO KVO 全称 Key-Value Observing。中文叫键值观察...

  • iOS下KVO使用过程中的陷阱KVO,

    【原】iOS下KVO使用过程中的陷阱KVO,全称为Key-Value Observing,是iOS中的一种设计模式...

  • KVO应用、原理及自实现

    一.KVO简介 KVO 是ios里,观察者设计模式的一种应用实现,依赖runtime,基于KVC,KVO提供了一种...

  • KVO详解

    KVO(Key-Value-Obersver)是iOS对于对象属性的一种源于观察者模式的设计。使用KVO可以使我们...

  • iOS kvo设计模式

    好久没有写文章了,都感觉对不住我的粉丝了。好,今天就写写最近在开发的时候遇到的一些问题。这篇文章先介绍一下kvo设...

  • iOS KVO基础知识

    iOS KVO基础知识 1. 简介 KVO其实就对应设计模式的观察者模式,观察者能够观察其他对象(被观察者)的属性...

  • 2.4 KVO设计模式(监听对象属性的变化)

    KVO设计模式(监听对象属性的变化) BOSS类 KVO设计模式(监听对象属性的变化).png

网友评论

    本文标题:iOS kvo设计模式

    本文链接:https://www.haomeiwen.com/subject/jmsyqttx.html