美好的一天,
我正在尝试将 Objective C 片段转换为 Swift。我知道选择器可以通过将其放在字符串中来直接翻译,但我无法理解 Objective C 签名。:
Objectice 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
。
所以,
- (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>) {
}
关于ios - 努力将 Objective C 选择器和目标签名转换为 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108888/