zoukankan      html  css  js  c++  java
  • KVO(键-值观察)

    // 1.键-值观察 
    // 2.它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。 
    // 3.符合KVC(Key-ValuedCoding)机制的对象才可以使用KVO 
    // 4.实现过程 
    // ①注册,指定被观察者 
    // ②实现回调方法 
    // ③移除观察

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib.
        // 实例化一个观察者对象
        self.stockForKVO = [[StockData alloc] init];
        // 初始化
        [self.stockForKVO setValue:@"searph" forKey:@"stockName"];// KVC
        [self.stockForKVO setValue:@"10.0" forKey:@"price"];// KVC
         
        // 监听并显示在 lable 里 - 注册观察者
        [self.stockForKVO addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew context:nil];
         
        self.myLable.textColor = [UIColor redColor];
        self.myLable.text = [self.stockForKVO valueForKey:@"price"];
         
        // 创建 button 按钮
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [button setFrame:CGRectMake(9015014042)];
        [button setTitle:@"按钮" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
     
    // button响应方法
    - (void)buttonAction
    {
        [self.stockForKVO setValue:@"20.0" forKey:@"price"];
    }
     
    // 回调方法
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
        if ([keyPath isEqualToString:@"price"])
        {
            self.myLable.text = [self.stockForKVO valueForKey:@"price"];
        }
    }
     
    - (void)dealloc
    {
        // 移除观察者
        [self.stockForKVO removeObserver:self forKeyPath:@"price"];
    }
  • 相关阅读:
    Android Studio的git功能的使用介绍
    如何用Android Studio同时使用SVN和Git管理项目
    【.NET深呼吸】动态类型(扩充篇)
    【.net深呼吸】动态类型(高级篇)
    【.net深呼吸】动态类型(娱乐篇)
    VS 2015相当不错的功能:C#交互窗口
    计算照片的面积(WPF篇)
    计算照片的面积(UWP篇)
    【Win 10应用开发】把文件嵌入到XML文档
    【.NET深呼吸】基础:自定义类型转换
  • 原文地址:https://www.cnblogs.com/yangmx/p/3844949.html
Copyright © 2011-2022 走看看