본문 바로가기

교육/Objective-C

[Objective-C] kvo(key value observing)

1. kvo(key value observing)

해당 key의  value가 변할 때 통보받을 수 있는 방법


2. 샘플 코드 

@interface People : NSObject

@property (retain, nonatomic) NSString* name;

@property (retain, nonatomic) NSString* addr;


@end


@implementation People

//@synthesize name,addr;

@end

@interface Car : NSObject

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context;

@end

@implementation Car

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context

{

    NSString* newValue = [change objectForKey:NSKeyValueChangeNewKey];

    NSLog(@"%@",newValue);

    NSLog(@"merong");

}


@end


int main()

{

    People* p1 = [[People alloc] init];

    // kvo 객체의 프라퍼티가 변할 통보 받을 있는 문법

    Car* c1 = [[Car alloc] init];

    [p1 addObserver:c1 forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:nil];

    p1.name=@"kim";

    [p1 removeObserver:c1 forKeyPath:@"name"];

    [p1 release];

    [c1 release];

    return 0;

}

'교육 > Objective-C' 카테고리의 다른 글

[Objective-C] category  (0) 2016.08.01
[Objective-C] protocol  (0) 2016.08.01
[Objective-C] kvc(key value coding)  (0) 2016.08.01
[Objective-C] block  (0) 2016.07.26
[Objective-C] property  (0) 2016.07.26