【发布时间】:2015-06-24 10:16:55
【问题描述】:
我在 Objective-C 中有一个函数如下
- (void) fetchChannelListForWatch:(void (^)(NSDictionary *))callback
我想像这样传递一个快速回调闭包:
fetchChannelListForWatch(replyHandler)
replyHandler 是类型的闭包
replyHandler: ([String : AnyObject]) -> Void)
我得到了错误:
Cannot invoke 'fetchChannelListForWatch' with an argument list of type '(([String : AnyObject]) -> Void)'
replyHandler 来自 WatchConnectivity 委托
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void)
所以我无法更改replyHandler 的类型。
如何使用参数传递我的快速闭包
replyHandler: [String: AnyObject] -> ()
进入一个带有参数的块的目标C函数
- (void) fetchChannelListForWatch:(void (^)(NSDictionary *))callback
非常感谢您的帮助!
【问题讨论】:
-
如果您只是在此处粘贴代码(并将其标记为这样)而不是使用图像,我们会更容易阅读。
-
@Eiko,感谢您的编辑!
标签: ios objective-c swift nsdictionary swift-dictionary