努力将 Objective C 选择器和目标签名转换为 Swift

2024-01-03

再会,

我正在尝试将 Objective C 代码片段转换为 Swift。我知道选择器可以通过将其放入字符串中来直接翻译,但我无法理解 Objective C 签名:

Objective C 选择器(第二个参数):

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

目标:

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

我的问题是: 1.我可以简单地将选择器传递为:

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

2.请帮我了解目标函数的签名。我被难住了!


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

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

So,

- (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>)       {

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

努力将 Objective C 选择器和目标签名转换为 Swift 的相关文章

随机推荐