MulticastBlock

public class MulticastBlock : NSObject

多句柄代理,线程安全,可实现重复、单次或延迟调用功能

串行安全:读sync,写async 并行安全:读sync,写async, 用flags:.barrier加共享互斥锁

  • 调用后是否自动移除句柄,默认false可重复执行

    Declaration

    Swift

    public var autoRemoved: Bool
  • 是否只能invoke一次,开启时invoke后再append会立即执行而不是添加,默认false

    Declaration

    Swift

    public var invokeOnce: Bool
  • 是否在主线程执行,会阻碍UI渲染,默认false

    Declaration

    Swift

    public var onMainThread: Bool
  • 指定Key并返回代理单例

    Declaration

    Swift

    public static func sharedBlock(_ key: AnyHashable) -> MulticastBlock
  • 添加句柄,invokeOnce开启且调用了invoke后会立即执行而不是添加

    Declaration

    Swift

    public func append(_ block: @escaping () -> Void)
  • 手动清空所有句柄

    Declaration

    Swift

    public func removeAll()
  • 调用句柄,invokeOnce开启时多次调用无效

    Declaration

    Swift

    public func invoke()