NSObject(FWKvo)

@interface NSObject (FWKvo)

/**
 监听对象某个属性,对象释放时自动移除监听,添加多次执行多次
 
 @param property 属性名称
 @param block    目标句柄,block参数依次为object、优化的change字典(不含NSNull)
 @return 监听唯一标志
 */
- (NSString *)fw_observeProperty:(NSString *)property block:(void (^)(id object, NSDictionary<NSKeyValueChangeKey, id> *change))block NS_REFINED_FOR_SWIFT;

/**
 监听对象某个属性,对象释放时自动移除监听,添加多次执行多次
 
 @param property 属性名称
 @param target   目标对象
 @param action   目标动作,action参数依次为object、优化的change字典(不含NSNull)
 @return 监听唯一标志
 */
- (NSString *)fw_observeProperty:(NSString *)property target:(nullable id)target action:(SEL)action NS_REFINED_FOR_SWIFT;

/**
 手工移除某个属性指定监听
 
 @param property 属性名称
 @param target   目标对象,值为nil时移除所有对象(同UIControl)
 @param action   目标动作,值为nil时移除所有动作(同UIControl)
 */
- (void)fw_unobserveProperty:(NSString *)property target:(nullable id)target action:(nullable SEL)action NS_REFINED_FOR_SWIFT;

/**
 手工移除某个属性指定监听
 
 @param property   属性名称
 @param identifier 监听唯一标志
 */
- (void)fw_unobserveProperty:(NSString *)property identifier:(NSString *)identifier NS_REFINED_FOR_SWIFT;

/**
 手工移除某个属性所有监听
 
 @param property 属性名称
 */
- (void)fw_unobserveProperty:(NSString *)property NS_REFINED_FOR_SWIFT;

/**
 手工移除所有属性所有监听
 */
- (void)fw_unobserveAllProperties NS_REFINED_FOR_SWIFT;

@end

Undocumented

  • 监听对象某个属性,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)
        fw_observeProperty:(nonnull NSString *)property
                     block:(nonnull void (^)(id _Nonnull __strong,
                                             NSDictionary<NSKeyValueChangeKey, id>
                                                 *_Nonnull __strong))block;

    Parameters

    property

    属性名称

    block

    目标句柄,block参数依次为object、优化的change字典(不含NSNull)

    Return Value

    监听唯一标志

  • 监听对象某个属性,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)fw_observeProperty:(nonnull NSString *)property
                                      target:(nullable id)target
                                      action:(nonnull SEL)action;

    Parameters

    property

    属性名称

    target

    目标对象

    action

    目标动作,action参数依次为object、优化的change字典(不含NSNull)

    Return Value

    监听唯一标志

  • 手工移除某个属性指定监听

    Declaration

    Objective-C

    - (void)fw_unobserveProperty:(nonnull NSString *)property
                          target:(nullable id)target
                          action:(nullable SEL)action;

    Parameters

    property

    属性名称

    target

    目标对象,值为nil时移除所有对象(同UIControl)

    action

    目标动作,值为nil时移除所有动作(同UIControl)

  • 手工移除某个属性指定监听

    Declaration

    Objective-C

    - (void)fw_unobserveProperty:(nonnull NSString *)property
                      identifier:(nonnull NSString *)identifier;

    Parameters

    property

    属性名称

    identifier

    监听唯一标志

  • 手工移除某个属性所有监听

    Declaration

    Objective-C

    - (void)fw_unobserveProperty:(nonnull NSString *)property;

    Parameters

    property

    属性名称

  • 手工移除所有属性所有监听

    Declaration

    Objective-C

    - (void)fw_unobserveAllProperties;