您的位置:首页 > 产品设计 > UI/UE

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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: