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;