我有以下代码-
[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] 删除。
我来说两句