努力将Objective Cselect器和目标签名转换为Swift

美好的一天,

我正在尝试将Objective C片段转换为Swift。 我明白select器可以通过放置在一个string直接翻译,但我不明白的Objective C签名:

Objectice Cselect器(第二个参数):

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 

目标:

 - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ 

我的问题是:1.我可以简单地通过select器:

 UIImageWriteToSavedPhotosAlbum(image, self, "image:didFinishSavingWithError:contextInfo:", nil); 

请帮助我的目标function的singnature。 我很难过!

要从Objective-C方法名称转换到Swift,Objective C方法中的第一个参数名称将成为函数名称,其余参数将成为函数的参数。

在你的情况下,第一个参数名称是image ,所以在Swift中的函数名称将是image

所以,

 - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo 

成为有点奇怪的样子 –

 func image(image: UIImage, didFinishSavingWithError: NSError, contextInfo:UnsafePointer<Void>) { } 

为了使事情变得简单一些,你可以为错误使用不同的内部参数名称 –

 func image(image: UIImage, didFinishSavingWithError error: NSError, contextInfo:UnsafePointer<Void>) { }