如何在Swift Closure中获取Objective-C块输入参数

时间:2015-02-01 06:16:44

标签: objective-c swift closures block

我需要在我的Swift项目中使用Objective-C SDK,Objc演示在下面

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
   NSLog(@"reslut = %@",resultDic);
}];

它将一个块传递给payOrder:orderString :: function,但是当我在Swift中调用它时,自动完成帮我生成这些代码

AlipaySDK.defaultService().payOrder(orderString, fromScheme: self.aliAppScheme, callback: { ([NSObject : AnyObject]!) -> Void in
    println("Pay Success")
})

在Swift中,闭包输入参数没有名称,在Objc中它命名为resultDict,但在Swift中我不知道如何获取指针,请帮助我,谢谢

1 个答案:

答案 0 :(得分:0)

在目标C块中,它采用NSDictionary参数。使用Swift闭包,闭包已经输入,因此您不必将NSDictionary声明为类型,您甚至不需要-> Void。同样,, callback:在Swift中也是无关紧要的,因为尾随闭包因此你的最终产品应该是:

AlipaySDK.defaultService().payOrder(orderString, fromScheme: self.aliAppScheme) { resultDict in
    println("Pay Success")
}