Ios 使用多个参数弃用重命名的方法

Ios 使用多个参数弃用重命名的方法,ios,swift,swift3,deprecated,Ios,Swift,Swift3,Deprecated,我想为Swift 3更新以下方法的命名: public func imageWithUrl(url: String, placeholderNamed: String) { if let image = UIImage(named: placeholderNamed) { imageWithUrl(url: url, placeholder: image) } else { imageWithUrl(url: url) } } 到 因此,

我想为Swift 3更新以下方法的命名:

public func imageWithUrl(url: String, placeholderNamed: String) {
    if let image = UIImage(named: placeholderNamed) {
        imageWithUrl(url: url, placeholder: image)
    } else {
        imageWithUrl(url: url)
    }
}

因此,我不推荐使用以下旧方法:

@available(*, deprecated: 1.8, renamed: "image(url:, placeholder:")
问题是我遇到了以下错误:

“available”属性的“renamed”参数必须是运算符、标识符或完整函数名,可以选择使用类型名作为前缀


我对
重命名:
部分有问题。为了解决这个问题,只需将其更改为

@available(*, deprecated: 1.8, renamed: "image(url:placeholder:)")

这在文档中并不完全清楚(或者至少不明显),但为
重命名的
提供的字符串文字参数的构造遵循相当严格的规则;在上述情况下,使用“完整函数名”(imo可以在文档中更明确地指定)。您在这里的回答修复了参数,因此它现在确实遵循了“完整函数名”的规则(没有逗号分隔)。除非参数与名称完全分开对齐,否则它仍然不会移动参数。可怜。
@available(*, deprecated: 1.8, renamed: "image(url:placeholder:)")