iOSKVC KVO 添加观察者 --销毁的时候要删除观察者
来源:互联网 发布:美妆软件哪个好 编辑:程序博客网 时间:2024/06/15 13:05
#import "Person.h"
#import "Card.h"
@implementation Person
- (void)setCard:(Card *)card
{
_card=card;
//添加观察者,用来监视余额的变动
[self.cardaddObserver:selfforKeyPath:@"balance"options:NSKeyValueObservingOptionNewcontext:nil];
}
- (void)observeValueForKeyPath:(nullableNSString *)keyPath ofObject:(nullableid)object change:(nullableNSDictionary *)change context:(nullablevoid *)context
{
if ([keyPath isEqualToString:@"balance"]) {
NSLog(@"balance is changed!余额是多少:%g",self.card.balance);
}
}
- (void)dealloc
{
[self.cardremoveObserver:selfforKeyPath:@"balance"];
}
//
// main.m
// 070303kvc
//
// Created by tianshangrenjian on 15/7/3.
// Copyright © 2015年 tianshangrenjian. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Car.h"
#import "Card.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
// insert code here...
Person *p=[[Personalloc] init];
Car *car=[[Caralloc] init];
p.car=car;
car.name=@"BWM";
//KVC 属性赋值 key value coding
[psetValue:@"fuck"forKey:@"name"];
[p setValue:@"MG"forKeyPath:@"car.name"];
Card *card=[[Cardalloc] init];
p.card=card;
p.card.balance=10;
//KVOkey value observe (如:银行卡的余额发生变化的时候通知给所有者)
//分析: 人和卡
NSLog(@"%@:%@",p.name,p.car.name);
}
return 0;
}
- iOSKVC KVO 添加观察者 --销毁的时候要删除观察者
- 观察者模式 --KVO
- 观察者KVO
- 基于kvo的观察者模式
- 键值观察者模式KVO--为UIImageView添加KVO
- 设计模式--观察者模式Notification -NotificationCenter KVO
- iOS的观察者模式之:KVC&KVO
- (有码)KVO 轻量级的观察者模式
- 65-KVO(观察者模式)
- KVO观察者模型
- KVO-键值观察者
- KVO 键值观察者
- KVO--观察者模式
- 观察者模式 - 通知/KVO
- kVO 观察者模式
- KVO观察者模式简介
- KVO 观察者模式
- KVO观察者模式<代码演示>
- 无法定位序数 xxxx 与动态链接库 avcodec-55.dll上
- 日志文件logback
- Google 镜像站搜集
- RocketMQ 环境搭建
- 集合
- iOSKVC KVO 添加观察者 --销毁的时候要删除观察者
- 【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
- 初始MINA框架
- 黑马程序员-java基础-集合
- Android 开发 之 Fragment 详解
- Compare Version Numbers
- OpenCV之五 分离颜色通道&多通道图像混合
- java io-1基本概念
- java 项目 路径获取