博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[10秒学会] - iOS kvo 使用(demo)
阅读量:6033 次
发布时间:2019-06-20

本文共 1638 字,大约阅读时间需要 5 分钟。

hot3.png

DCmodel.h

#import 
@interface DCtestModel : NSObject@property(copy,nonatomic) NSString *name;- (instancetype)initWithKvo;@end

DCmodel.m

#import "DCtestModel.h"@implementation DCtestModel- (instancetype)initWithKvo {    self=[super init];    if (self) {            }    return self;}@end

直接上代码

////  ViewController.m//  DCKvo////  Created by 赵大财 on 16/4/6.//  Copyright © 2016年 tshiny. All rights reserved.//#import "ViewController.h"#import "DCtestModel.h"@interface ViewController ()@property(nonatomic,strong) DCtestModel *model;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        _model = [[DCtestModel alloc]initWithKvo];    [_model addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:nil];    /*    NSKeyValueObservingOptionNew 把更改之前的值提供给处理方法    NSKeyValueObservingOptionOld 把更改之后的值提供给处理方法    NSKeyValueObservingOptionInitial 把初始化的值提供给处理方法,一旦注册,立马就会调用一次。通常它会带有新值,而不会带有旧值。    NSKeyValueObservingOptionPrior 分2次调用。在值改变之前和值改变之后    */}-(void)touchesBegan:(NSSet
 *)touches withEvent:(UIEvent *)event {    _model.name =@"zhao";    _model.name =@"da";[_model removeObserver:self forKeyPath:@"name"];    _model.name =@"cai";} 当监听的属性改变就会调用这个方法- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{        NSLog(@"%@",change);    }@end

//运行结果

2016-04-06 18:17:46.692 DCKvo[24931:549533] {

    kind = 1;
    new = zhao;
}
2016-04-06 18:17:46.692 DCKvo[24931:549533] {
    kind = 1;
    new = da;
}
// cai 已被移除 所以不在监听
================================

转载于:https://my.oschina.net/zhaodacai/blog/653810

你可能感兴趣的文章
tomcat 配置首页
查看>>
算术运算表达式正则及分析
查看>>
Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb
查看>>
shell初涉
查看>>
[浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(二)
查看>>
ASP.NET 中设置路径的三种方式
查看>>
EBS使用 Distributed AD在多个节点并行adpatch
查看>>
windows添加和删除服务
查看>>
关于云栖,有点无语的几个地方,管理能不能管?
查看>>
Windows线程的同步与互斥
查看>>
C#进阶系列——MEF实现设计上的“松耦合”(四):构造函数注入
查看>>
AngularJs ng-change事件/指令(转)
查看>>
linux系统下安装两个或多个tomcat
查看>>
ProtoBuffer 简单例子
查看>>
iOS多线程开发系列之(一)NSThread
查看>>
微信小程序初体验(上)- 腾讯ISUX社交用户体验设计成员出品
查看>>
SAP WM Physical Inventory Method ST & PZ
查看>>
一次快速的数据迁移感悟
查看>>
MySQL修改提示符
查看>>
《ELK Stack权威指南(第2版)》一3.6 Java日志
查看>>