首页 > 其他 > 详细

自我认识-KVC KVO 例子

时间:2014-04-18 08:50:54      阅读:759      评论:0      收藏:0      [点我收藏+]

有一个Person类,Person里面有一个Tiger(为了严重KVC的keypath用),还有一个PersonMonitor观察者类


Person.h

#import <Foundation/Foundation.h>

@interface Tiger : NSObject

@property(nonatomic,strong) NSString *tigerName;
@end

@interface Person : NSObject

@property(nonatomic,strong) NSString *strName;
@property(nonatomic,strong) NSString *strPassword;
@property(nonatomic,strong) Tiger *tiger;


@end


PersonMonitor.m

//
//  PersonMonitor.m
//  xcyUI
//
//  Created by XiangChenyu on 14-4-17.
//  Copyright (c) 2014年 XiangChenyu. All rights reserved.
//

#import "PersonMonitor.h"
#import "Person.h"

@implementation PersonMonitor

- (instancetype)init
{
    self = [super init];
    if (self) {
       
    }
    return self;
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if ([keyPath  isEqual: @"strName"])
    {
        NSLog(@"strName-->%@",@"hello");
    }
    else
    {
        [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
    }
}
@end

调用结果:


  Person* per = [[Person alloc] init];
    Tiger *tiger = [[Tiger alloc] init];
    per.tiger = tiger;
    
    [per setValue:@"strXX" forKey:@"strName"];
    NSLog(@"%@",[per valueForKey:@"strName"]);
    
    [per setValue:@"smalltiger" forKeyPath:@"tiger.tigerName"];
    NSLog(@"%@",[per valueForKeyPath:@"tiger.tigerName"]);
    
    
    PersonMonitor *perMonitoer = [[PersonMonitor alloc]init];
    [per addObserver:perMonitoer
             forKeyPath:@"strName"
                options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
                context:nil];

    [per setValue:@"dd" forKey:@"strName"];
    
    [per removeObserver:perMonitoer forKeyPath:@"strName"];

打印结果:

bubuko.com,布布扣

自我认识-KVC KVO 例子,布布扣,bubuko.com

自我认识-KVC KVO 例子

原文:http://blog.csdn.net/xcysuccess3/article/details/23969629

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!