OC KVO
来源:互联网 发布:安徽中港金融数据 编辑:程序博客网 时间:2024/05/22 03:48
===============Item==================
#import <Foundation/Foundation.h>
@interface Item : NSObject
@property (nonatomic,strong)NSString*name;
@property (nonatomic,assign)double price;
@end
#import "Item.h"
@implementation Item
@synthesize name,price;
@end
===============ItemView==================
#import <Foundation/Foundation.h>
@class Item;
@interface ItemView : NSObject
@property (nonatomic,strong)Item*item;
-(void)showItemInfo;
@end
#import "ItemView.h"
#import "Item.h"
@implementation ItemView
@synthesize item=_item;
-(void)showItemInfo{
NSLog(@"name=%@,price=%f",_item.name,_item.price);
}
-(void)setItem:(Item *)item{
self->_item = item;
//为item添加监器,监听item的name属性的改变
[self.itemaddObserver:selfforKeyPath:@"name"options:NSKeyValueObservingOptionNewcontext:nil];
//为item添加监器,监听item的price属性的改变
[self.itemaddObserver:selfforKeyPath:@"price"options:NSKeyValueObservingOptionNewcontext:nil];
}
//重写方法,当被监听的数据模型发生改变时,就会回调监听器的方法
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
NSLog(@"===observeValueForKeyPath方法被调用===");
NSLog(@"被修改的keyPath为:%@",keyPath);
NSLog(@"被修改的对象为:%@",object);
NSLog(@"被修改的属性的值为:%@",[change objectForKey:@"new"]);
NSLog(@"被修改的上下午为:%@",context);
}
-(void)dealloc{
[self.itemremoveObserver:selfforKeyPath:@"name"];
[self.itemremoveObserver:selfforKeyPath:@"price"];
}
@end
===============main==================
#import <Foundation/Foundation.h>
#import "ItemView.h"
#import "Item.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Item* item = [[Itemalloc]init];//修改属性
//设置item属性
item.name = @"IOS";
item.price = 109;
ItemView * itemView = [[ItemViewalloc]init];
[itemView setItem:item];
[itemView showItemInfo];
item.name = @"JAVA";
item.price = 888;
}
return 0;
}
- OC KVO
- OC-KVO
- OC-KVO
- OC-KVO
- OC - KVO
- OC KVO
- OC学习之KVO
- OC-KVC/KVO
- oc中kvc kvo
- oc 语法 kvo
- OC之KVO
- OC键值监听(KVO)
- OC-KVO的应用
- OC中的KVO
- oc语言kvo
- oc——KVO
- OC-KVC/KVO
- OC的KVO模式漫谈
- 删数游戏(版本二)
- dcefbrowser 支撑flash插件 解决办法
- 1140419.html
- Top命令详解
- 增强的格式化字符串format函数
- OC KVO
- 为easyUI的table表格添加点击按钮并弹出图片
- 阿里巴巴Java开发手册学习小结8-异常日志
- 电气原理图相关标准
- 软件测试行业的二八法则——基于风险的测试
- 摄像头自动曝光相关基础知识
- Lintcode刷题
- C++ 类的静态成员详细讲解
- 通过request.getParameterMap()动态获取请求参数。