zoukankan      html  css  js  c++  java
  • KVO小叙

    KVO

    监听者监听对象发生改变 执行- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context这个方法,主要用于实时监听

    #import "AppDelegate.h"
    #import "Person.h"
    @interface AppDelegate ()
    @property (nonatomic,retain) Person *p;
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.backgroundColor = [UIColor whiteColor];
        
        
        //创建一个对象
        self.p = [[Person alloc] init];
        self.p.name = @"zhangsan";
        
        //添加观察者
        [self.p addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew  | NSKeyValueObservingOptionOld context:@""];
        
        
        self.p.name = @"lisi";
        
        
        
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    //观察者观察到被观察者的值发生变化,状态发生变化,或者执行了某个事件之后,执行的方法.
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
        NSLog(@"keyPath = %@",keyPath);
        NSLog(@"object = %@",object);
        NSLog(@"change = %@",change);
        NSLog(@"context = %@",context);
        NSLog(@"%@",[change objectForKey:@"new"]);
    }
    
    

    打印结果如下:
    2015-05-22 10:06:42.154 LessonKVO[2402:1257315] keyPath = name
    2015-05-22 10:06:42.154 LessonKVO[2402:1257315] object = <Person: 0x7ff24954a3e0>
    2015-05-22 10:06:42.156 LessonKVO[2402:1257315] change = {
    kind = 1;
    new = lisi;
    old = zhangsan;
    }
    2015-05-22 10:06:42.156 LessonKVO[2402:1257315] context =
    2015-05-22 10:06:42.156 LessonKVO[2402:1257315] lisi
    2015-05-22 10:06:42.160 LessonKVO[2402:1257315] Application windows are expected to have a root view controller at the end of application launch
    由于未完善 可参考 :http://blog.csdn.net/totogo2010/article/details/7779402,http://blog.csdn.net/wzzvictory/article/details/9674431#

    On the road。。。
  • 相关阅读:
    asp.net性能的技巧
    『笔记』数学数论(二)
    『笔记』数学数论(五)
    『笔记』数学数论(一)
    『笔记』数学数论(四)
    『笔记』分块与块状数组
    『笔记』矩阵
    『题解』CF28A Bender Problem
    『笔记』数学数论(七)
    『笔记』数学数论(三)
  • 原文地址:https://www.cnblogs.com/ianhao/p/4521787.html
Copyright © 2011-2022 走看看