我有以下代码 -
[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的地方吗?如果是这样,我怎么知道呢。
谢谢!
答案 0 :(得分:2)
问题是这些都是无效的,所以你需要感叹号。所以:
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
}
另外,你不能在Swift中说!error
,但是当你来到它时你可以越过那座桥。