Ios 用Objective-NSC字典协调Swift回调

Ios 用Objective-NSC字典协调Swift回调,ios,objective-c,swift,cordova,dictionary,Ios,Objective C,Swift,Cordova,Dictionary,我们的应用程序使用推送插件: 推送插件所做的一件事就是swizzle AppDelegate.m文件。因为我们的AppDelegate文件是.swift文件,所以我需要导入核心功能 但是,我在转换Swift函数以进入它期望的NSDictionary对象内部时遇到了一个问题 以下是我正在转换的代码: void (^safeHandler)(UIBackgroundFetchResult) = ^(UIBackgroundFetchResult result){

我们的应用程序使用推送插件:

推送插件所做的一件事就是swizzle AppDelegate.m文件。因为我们的AppDelegate文件是.swift文件,所以我需要导入核心功能

但是,我在转换Swift函数以进入它期望的NSDictionary对象内部时遇到了一个问题

以下是我正在转换的代码:

        void (^safeHandler)(UIBackgroundFetchResult) = ^(UIBackgroundFetchResult result){
            dispatch_async(dispatch_get_main_queue(), ^{
                completionHandler(result);
            });
        };

        NSMutableDictionary* params = [NSMutableDictionary dictionaryWithCapacity:2];
        [params setObject:safeHandler forKey:@"handler"];

        PushPlugin *pushHandler = [self getCommandInstance:@"PushNotification"];
        pushHandler.handlerObj = params;
因此,我做的第一件事就是将
(^safeHandler)
转换为Swift:

            let safeHandler: (UIBackgroundFetchResult) -> () =
            {
                result in dispatch_async(dispatch_get_main_queue())
                {
                    completionHandler(result)
                }
            }
接下来,我需要创建
NSMutableDictionary
对象,该对象在
pushHandler
上设置为
handlerObj

safeHandler
直接放入字典会抛出错误

(UIBackgroundFetchResult)->()不确认任何对象 协议

因此,我尝试通过执行以下操作将字典类型更改为
[NSObject:closure]()

            typealias closure = (UIBackgroundFetchResult) -> Void
            var params:Dictionary<String, closure> = Dictionary<String, closure>()
            params["handler"] = safeHandler
我又犯了错误

无法分配类型为“Dictionary”(aka)的值 “Dictionary()>”)以键入 “[NSObject:AnyObject]!”

回到原点。似乎在Objective-C中,传入函数是可以的,但在Swift中不是这样吗

您知道我如何解决这个问题并将函数放入Objective-C代码所期望的
[NSObject:AnyObject]
中吗

            pushHandler.handlerObj = params