自我认识-KVC KVO 例子
2014-04-17 23:04
363 查看
有一个Person类,Person里面有一个Tiger(为了严重KVC的keypath用),还有一个PersonMonitor观察者类
Person.h
PersonMonitor.m
调用结果:
打印结果:
Person.h
#import <Foundation/Foundation.h> @interface Tiger : NSObject @property(nonatomic,strong) NSString *tigerName; @end @interface Person : NSObject @property(nonatomic,strong) NSString *strName; @property(nonatomic,strong) NSString *strPassword; @property(nonatomic,strong) Tiger *tiger; @end
PersonMonitor.m
// // PersonMonitor.m // xcyUI // // Created by XiangChenyu on 14-4-17. // Copyright (c) 2014年 XiangChenyu. All rights reserved. // #import "PersonMonitor.h" #import "Person.h" @implementation PersonMonitor - (instancetype)init { self = [super init]; if (self) { } return self; } - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([keyPath isEqual: @"strName"]) { NSLog(@"strName-->%@",@"hello"); } else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } } @end
调用结果:
Person* per = [[Person alloc] init]; Tiger *tiger = [[Tiger alloc] init]; per.tiger = tiger; [per setValue:@"strXX" forKey:@"strName"]; NSLog(@"%@",[per valueForKey:@"strName"]); [per setValue:@"smalltiger" forKeyPath:@"tiger.tigerName"]; NSLog(@"%@",[per valueForKeyPath:@"tiger.tigerName"]); PersonMonitor *perMonitoer = [[PersonMonitor alloc]init]; [per addObserver:perMonitoer forKeyPath:@"strName" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; [per setValue:@"dd" forKey:@"strName"]; [per removeObserver:perMonitoer forKeyPath:@"strName"];
打印结果:
相关文章推荐
- redis基本认识以及在windows上Java操作redis例子
- 限时免费《敏捷个人-认识自我,管理自我 v0.6.pdf》
- 敏捷个人2011.12月份线下活动报道:认识自我 推荐
- 读《敏捷个人-认识自我,管理自我》之Scrum的核心价值观
- 推荐:每个人都需要成长,在线阅读《敏捷个人-认识自我,管理自我 V0.5.pdf》
- 从一个小例子认识SQL游标
- 一个支持tcp多客户端连接的例子,轻松认识linux select函数的基本原理和使用方法
- 浅谈自我对git的初步认识
- EXT JS认识EXTJS,第一个EXTJS例子
- 限时免费《敏捷个人-认识自我,管理自我 v0.6.pdf》
- 自己实现栈,泛型的一些自我认识
- 时域认识采样定理的一个小例子
- 春招阿里一面-- 认识自我
- 对dijkstra算法的自我理解,c#例子
- 敏捷个人2015年8月线下活动:认识自我系列第二期活动报道
- #敏捷个人资料# 免费下载 《敏捷个人-认识自我,管理自我 v0.8.pdf》
- lucene学习01之简单小例子初步认识lucene
- EXT JS认识EXTJS,第一个EXTJS例子
- 限时免费《敏捷个人-认识自我,管理自我 v0.6.pdf》
- 自我认识