ViewController之间通讯KVO(key value observing)键值观察模式
2013-01-29 20:43
519 查看
// MyClass1.h
#import <Foundation/Foundation.h>
@interface MyClass1 :
NSObject{
NSString *value;
}
@property(nonatomic,copy)NSString
*value;
@end
// MyClass1.m
#import "MyClass1.h"
@implementation MyClass1
@synthesize value;
@end
// MyClass2.h
#import <Foundation/Foundation.h>
@interface MyClass2 :
NSObject
@end
// MyClass2.m
#import "MyClass2.h"
@implementation MyClass2
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
NSLog(@"I heard about the change!");
}
// main.m
#import <Foundation/Foundation.h>
#import "MyClass1.h"
#import "MyClass2.h"
int main (int argc,
const
char * argv[])
{
@autoreleasepool {
MyClass1* objectA = [[MyClass1alloc]
init];
MyClass2* objectB = [[MyClass2alloc]
init];
// KVO
注册
[objectA addObserver:objectB
forKeyPath:@"value"options:0context:nil];
//使用 KVO
方式来改变值
objectA.value =
@"Hello, world!";
//结果: objectB's observeValueForKeyPath:被调用
}
return0;
}
输出:
I heard about the change!
#import <Foundation/Foundation.h>
@interface MyClass1 :
NSObject{
NSString *value;
}
@property(nonatomic,copy)NSString
*value;
@end
// MyClass1.m
#import "MyClass1.h"
@implementation MyClass1
@synthesize value;
@end
// MyClass2.h
#import <Foundation/Foundation.h>
@interface MyClass2 :
NSObject
@end
// MyClass2.m
#import "MyClass2.h"
@implementation MyClass2
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
NSLog(@"I heard about the change!");
}
// main.m
#import <Foundation/Foundation.h>
#import "MyClass1.h"
#import "MyClass2.h"
int main (int argc,
const
char * argv[])
{
@autoreleasepool {
MyClass1* objectA = [[MyClass1alloc]
init];
MyClass2* objectB = [[MyClass2alloc]
init];
// KVO
注册
[objectA addObserver:objectB
forKeyPath:@"value"options:0context:nil];
//使用 KVO
方式来改变值
objectA.value =
@"Hello, world!";
//结果: objectB's observeValueForKeyPath:被调用
}
return0;
}
输出:
I heard about the change!
相关文章推荐
- iOS学习笔记05—Key-Value-Observing(KVO,键值观察)
- Key-Value-Observing(KVO,键值观察)
- KVO (Key-Value Observing) 键值观察模式
- 键值观察 Key-Value Observing Programming Guide
- KVO (Key-Value Observing) 键值观察模式
- KVO(NSKeyValueObserving 键 - 值编码)与KVC(NSKeyValueCoding 键值观察机制)详解
- KVO(NSKeyValueObserving 键 - 值编码)与KVC(NSKeyValueCoding 键值观察机制)详解
- 观察者模式的具体应用——通知(notification)机制和KVO(Key-Value-Observing)机制
- iOS开发7-KVO(Key-Value Observer)键值观察
- KVO Key Value Observing 基于键值的观察者
- iOS---KVO(Key Value Observing) 观察者模式之解析与应用
- KVO(Key-Value Observing)
- KVO键值观察 Key-Value Observing自动发通知的方法
- KVO(Key Value Observing)
- KVC(key value coding)/ KVO(key value observing)
- 路径(keyPath)、键值编码(KVC)和键值观察(KVO)
- IOS学习之——ViewController之间双向传值(反向为代理模式)
- 键值观察之KVO——即观察者模式的应用
- KVC(key value coding)/ KVO(key value observing)
- 键路径(keyPath)、键值编码(KVC)和键值观察(KVO)