objcDispatcherClassMethed function

String objcDispatcherClassMethed(
  1. String suffix
)

Implementation

String objcDispatcherClassMethed(String suffix) => '''
+ (void)init:(NSObject<FlutterBinaryMessenger>* _Nonnull)binaryMessenger {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        UniCallbackCache = NSMutableDictionary.new;

        FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel messageChannelWithName:@"$channelPrefix.UniCallbackManager.callback_channel.dispose$suffix" binaryMessenger: binaryMessenger];
        [channel setMessageHandler:^(id  _Nullable message, FlutterReply  _Nonnull callback) {
            NSString *uniCallbackName = [message objectForKey:@"callback"];
            id subscriber = UniCallbackCache[uniCallbackName];
            if ([subscriber delegate] != NULL && [[subscriber delegate] respondsToSelector:@selector(disposeCallback:)]) {
                [[subscriber delegate] disposeCallback:uniCallbackName];
                [UniCallbackCache removeObjectForKey:uniCallbackName];
            }
        }];
    });
}

+ (void)registe:(NSString * _Nonnull)name callback:(id _Nonnull)subscriber {
    [UniCallbackCache setObject:subscriber forKey:name];
}
''';