zoukankan      html  css  js  c++  java
  • objc学习摘录

    KVO使用的方法

    /** 
     * Used by Foundation's Key-Value Observing.
     * 
     * @warning Do not call this function yourself.
     */
    OBJC_EXPORT Class objc_duplicateClass(Class original, const char *name, size_t extraBytes)
         __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
    UIViewController
    
    [self addObserver:self forKeyPath:@"intValue" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
    self.intValue = 1230;
    
    /// 一般的属性也会触发该方法调用 storyboard mswitch psegment sswitch view
    - (void)setValue:(id)value forKeyPath:(NSString *)keyPath {
        [super setValue:value forKeyPath:keyPath];
        NSLog(@"通过KVC设置值key:%@", keyPath);
    }
    /// 一般的属性也会触发该方法调用 storyboard mswitch psegment sswitch view
    - (void)setValue:(id)value forKey:(NSString *)key {
        [super setValue:value forKey:key];
        NSLog(@"设置Key-Value对key:%@", key);
    }
    /// 这个函数在调用addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:之后对应属性变化才会调用
    - (void)didChangeValueForKey:(NSString *)key {
        NSLog(@"已经改变key:%@",key);
        [super didChangeValueForKey:key];
    }
    
    /// 这个函数在调用addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:之后对应属性变化才会调用
    - (void)willChangeValueForKey:(NSString *)key {
        NSLog(@"即将改变key:%@",key);
        [super willChangeValueForKey:key];
    }
    
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
        NSLog(@"接收到消息改变key:%@
    %@",keyPath,change);
    }
  • 相关阅读:
    进程池和线程池、协程、TCP单线程实现并发
    GIL全局解释锁,死锁,信号量,event事件,线程queue,TCP服务端实现并发
    进程补充和线程的介绍
    进程的介绍和使用
    异常处理和UDP Socket套接字
    TCP Socket 套接字 和 粘包问题
    网络编程
    面向对象高级——反射和元类
    面向对象三大特性之——多态和一些内置函数
    面向对象-内置方法
  • 原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/13840730.html
Copyright © 2011-2022 走看看