将obj-c块转换为swift 2闭包

stktrc

我有以下代码-

[self.camera capture:^(LLSimpleCamera *camera, UIImage *image, NSDictionary *metadata, NSError *error) {
    if(!error) {    
       }
}];

对我来说应该翻译成

self.camera.capture({(camera: LLSimpleCamera, image: UIImage, metadata: [NSObject : AnyObject], error: NSError) -> Void in
    if !error {
    }
})

但这会引发所有有关“无法转换类型等的值”的错误,该错误在节的前部和返回的Void之间。有人可以告诉我,这是您必须使用unSafeMutablePointers的地方吗?如果是这样,我怎么知道。

谢谢!

马特

问题是这些都是可为空的,因此您需要使用感叹号。所以:

self.camera.capture { 
    (camera:LLSimpleCamera!, image:UIImage!, metadata:[NSObject : AnyObject]!, error:NSError!) -> Void in
    // whatever
}

或更紧凑地说,只需省略类型,然后让Swift从Objective-C声明中推断出它们:

self.camera.capture { 
    camera, image, metadata, error in
    // whatever
}

另外,您不能!error在Swift中出来,但是您可以跨过那座桥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Objective-C块转换为Swift闭包

来自分类Dev

将Objective-C块转换为Swift闭包

来自分类Dev

将Swift 2闭包转换为Objective-C块

来自分类Dev

将Objective-C块变量转换为Swift闭包变量?

来自分类Dev

如何将Objective-C块转换为Swift闭包?

来自分类Dev

将快速闭包转换为块

来自分类Dev

将库转换为JavaScript闭包

来自分类Dev

将代码从swift转换为obj c

来自分类Dev

快速将Objective-C块转换为闭包

来自分类Dev

快速将Objective-C块转换为闭包

来自分类Dev

将Scheme闭包定义函数转换为Haskell

来自分类Dev

如何将闭包转换为R中的字符?

来自分类Dev

如何将闭包转换为承诺

来自分类Dev

Swift3:将失败块从 Swift2 转换为 Swift3 的 AFNetworking 问题

来自分类Dev

将Cython的闭包传递给C ++

来自分类Dev

Swift 2:闭包数组字典

来自分类Dev

引发的Swift2闭包

来自分类Dev

将Objective-C块转换为Swift

来自分类Dev

将回调/闭包从 Objective C 转换为 Swift

来自分类Dev

可以将Obj-C AXObserverCallback转换为Swift吗?

来自分类Dev

将Obj-C转换为Swift ep1

来自分类Dev

在Objective-C中将闭包(Swift)转换为闭包(block?)

来自分类Dev

将Swift闭包作为属性存储在Objective-C类中,其中使用typedef声明该块

来自分类Dev

SWIFT闭包语法-从Objective C转换

来自分类Dev

Swift:如何将闭包作为函数参数传递

来自分类常见问题

将闭包更新为Swift 3-@escaping

来自分类Dev

Swift:将闭包作为类变量中的init参数

来自分类Dev

Java 8:将lambda转换为包含闭包的Method实例

来自分类Dev

如何将返回闭包的Scheme函数转换为等效的Common Lisp函数?