努力将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>) { }