NSObject(FWNotification)

@interface NSObject (FWNotification)

#pragma mark - Observer

/**
 监听某个广播通知,对象释放时自动移除监听,添加多次执行多次
 
 @param name  通知名称
 @param block 通知句柄
 @return 监听唯一标志
 */
- (NSString *)fw_observeNotification:(NSNotificationName)name block:(void (^)(NSNotification *notification))block NS_REFINED_FOR_SWIFT;

/**
 监听某个指定对象广播通知,对象释放时自动移除监听,添加多次执行多次
 
 @param name   通知名称
 @param object 通知对象,值为nil时表示所有
 @param block  通知句柄
 @return 监听唯一标志
 */
- (NSString *)fw_observeNotification:(NSNotificationName)name object:(nullable id)object block:(void (^)(NSNotification *notification))block NS_REFINED_FOR_SWIFT;

/**
 监听某个广播通知,对象释放时自动移除监听,添加多次执行多次
 
 @param name   通知名称
 @param target 通知目标
 @param action 目标动作,参数为通知对象
 @return 监听唯一标志
 */
- (NSString *)fw_observeNotification:(NSNotificationName)name target:(nullable id)target action:(SEL)action NS_REFINED_FOR_SWIFT;

/**
 监听某个指定对象广播通知,对象释放时自动移除监听,添加多次执行多次
 
 @param name   通知名称
 @param object 通知对象,值为nil时表示所有
 @param target 通知目标
 @param action 目标动作,参数为通知对象
 @return 监听唯一标志
 */
- (NSString *)fw_observeNotification:(NSNotificationName)name object:(nullable id)object target:(nullable id)target action:(SEL)action NS_REFINED_FOR_SWIFT;

/**
 手工移除某个广播通知指定监听
 
 @param name   通知名称
 @param target 通知目标
 @param action 目标动作
 */
- (void)fw_unobserveNotification:(NSNotificationName)name target:(nullable id)target action:(nullable SEL)action NS_REFINED_FOR_SWIFT;

/**
 手工移除某个指定对象广播通知指定监听
 
 @param name   通知名称
 @param object 通知对象,值为nil时表示所有
 @param target 通知目标
 @param action 目标动作
 */
- (void)fw_unobserveNotification:(NSNotificationName)name object:(nullable id)object target:(nullable id)target action:(nullable SEL)action NS_REFINED_FOR_SWIFT;

/**
 手工移除某个指定对象广播通知指定监听
 
 @param name       通知名称
 @param identifier 监听唯一标志
 */
- (void)fw_unobserveNotification:(NSNotificationName)name identifier:(NSString *)identifier NS_REFINED_FOR_SWIFT;

/**
 手工移除某个广播通知所有监听
 
 @param name 通知名称
 */
- (void)fw_unobserveNotification:(NSNotificationName)name NS_REFINED_FOR_SWIFT;

/**
 手工移除某个指定对象广播通知所有监听
 
 @param name   通知名称
 @param object 通知对象,值为nil时表示所有
 */
- (void)fw_unobserveNotification:(NSNotificationName)name object:(nullable id)object NS_REFINED_FOR_SWIFT;

/**
 手工移除所有广播通知监听
 */
- (void)fw_unobserveAllNotifications NS_REFINED_FOR_SWIFT;

#pragma mark - Subject

/**
 发送广播通知
 
 @param name 通知名称
 */
- (void)fw_postNotification:(NSNotificationName)name NS_REFINED_FOR_SWIFT;

/**
 发送广播通知,附带对象
 
 @param name   通知名称
 @param object 通知对象
 */
- (void)fw_postNotification:(NSNotificationName)name object:(nullable id)object NS_REFINED_FOR_SWIFT;

/**
 发送广播通知,附带对象和用户信息
 
 @param name     通知名称
 @param object   通知对象
 @param userInfo 用户信息
 */
- (void)fw_postNotification:(NSNotificationName)name object:(nullable id)object userInfo:(nullable NSDictionary *)userInfo NS_REFINED_FOR_SWIFT;

/**
 发送广播通知
 
 @param name 通知名称
 */
+ (void)fw_postNotification:(NSNotificationName)name NS_REFINED_FOR_SWIFT;

/**
 发送广播通知,附带对象
 
 @param name   通知名称
 @param object 通知对象
 */
+ (void)fw_postNotification:(NSNotificationName)name object:(nullable id)object NS_REFINED_FOR_SWIFT;

/**
 发送广播通知,附带对象和用户信息
 
 @param name     通知名称
 @param object   通知对象
 @param userInfo 用户信息
 */
+ (void)fw_postNotification:(NSNotificationName)name object:(nullable id)object userInfo:(nullable NSDictionary *)userInfo NS_REFINED_FOR_SWIFT;

@end

Undocumented

Observer

  • 监听某个广播通知,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)
        fw_observeNotification:(nonnull NSNotificationName)name
                         block:(nonnull void (^)(NSNotification *_Nonnull __strong))
                                   block;

    Parameters

    name

    通知名称

    block

    通知句柄

    Return Value

    监听唯一标志

  • 监听某个指定对象广播通知,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)
        fw_observeNotification:(nonnull NSNotificationName)name
                        object:(nullable id)object
                         block:(nonnull void (^)(NSNotification *_Nonnull __strong))
                                   block;

    Parameters

    name

    通知名称

    object

    通知对象,值为nil时表示所有

    block

    通知句柄

    Return Value

    监听唯一标志

  • 监听某个广播通知,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)fw_observeNotification:(nonnull NSNotificationName)name
                                          target:(nullable id)target
                                          action:(nonnull SEL)action;

    Parameters

    name

    通知名称

    target

    通知目标

    action

    目标动作,参数为通知对象

    Return Value

    监听唯一标志

  • 监听某个指定对象广播通知,对象释放时自动移除监听,添加多次执行多次

    Declaration

    Objective-C

    - (nonnull NSString *)fw_observeNotification:(nonnull NSNotificationName)name
                                          object:(nullable id)object
                                          target:(nullable id)target
                                          action:(nonnull SEL)action;

    Parameters

    name

    通知名称

    object

    通知对象,值为nil时表示所有

    target

    通知目标

    action

    目标动作,参数为通知对象

    Return Value

    监听唯一标志

  • 手工移除某个广播通知指定监听

    Declaration

    Objective-C

    - (void)fw_unobserveNotification:(nonnull NSNotificationName)name
                              target:(nullable id)target
                              action:(nullable SEL)action;

    Parameters

    name

    通知名称

    target

    通知目标

    action

    目标动作

  • 手工移除某个指定对象广播通知指定监听

    Declaration

    Objective-C

    - (void)fw_unobserveNotification:(nonnull NSNotificationName)name
                              object:(nullable id)object
                              target:(nullable id)target
                              action:(nullable SEL)action;

    Parameters

    name

    通知名称

    object

    通知对象,值为nil时表示所有

    target

    通知目标

    action

    目标动作

  • 手工移除某个指定对象广播通知指定监听

    Declaration

    Objective-C

    - (void)fw_unobserveNotification:(nonnull NSNotificationName)name
                          identifier:(nonnull NSString *)identifier;

    Parameters

    name

    通知名称

    identifier

    监听唯一标志

  • 手工移除某个广播通知所有监听

    Declaration

    Objective-C

    - (void)fw_unobserveNotification:(nonnull NSNotificationName)name;

    Parameters

    name

    通知名称

  • 手工移除某个指定对象广播通知所有监听

    Declaration

    Objective-C

    - (void)fw_unobserveNotification:(nonnull NSNotificationName)name
                              object:(nullable id)object;

    Parameters

    name

    通知名称

    object

    通知对象,值为nil时表示所有

  • 手工移除所有广播通知监听

    Declaration

    Objective-C

    - (void)fw_unobserveAllNotifications;

Subject

  • 发送广播通知

    Declaration

    Objective-C

    - (void)fw_postNotification:(nonnull NSNotificationName)name;

    Parameters

    name

    通知名称

  • 发送广播通知,附带对象

    Declaration

    Objective-C

    - (void)fw_postNotification:(nonnull NSNotificationName)name
                         object:(nullable id)object;

    Parameters

    name

    通知名称

    object

    通知对象

  • 发送广播通知,附带对象和用户信息

    Declaration

    Objective-C

    - (void)fw_postNotification:(nonnull NSNotificationName)name
                         object:(nullable id)object
                       userInfo:(nullable NSDictionary *)userInfo;

    Parameters

    name

    通知名称

    object

    通知对象

    userInfo

    用户信息

  • 发送广播通知

    Declaration

    Objective-C

    + (void)fw_postNotification:(nonnull NSNotificationName)name;

    Parameters

    name

    通知名称

  • 发送广播通知,附带对象

    Declaration

    Objective-C

    + (void)fw_postNotification:(nonnull NSNotificationName)name
                         object:(nullable id)object;

    Parameters

    name

    通知名称

    object

    通知对象

  • 发送广播通知,附带对象和用户信息

    Declaration

    Objective-C

    + (void)fw_postNotification:(nonnull NSNotificationName)name
                         object:(nullable id)object
                       userInfo:(nullable NSDictionary *)userInfo;

    Parameters

    name

    通知名称

    object

    通知对象

    userInfo

    用户信息