2016-12-13 3 views
1

Я хотел обновить именование следующего метода для Swift 3:протестующий переименован метод с несколькими аргументами

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

к

public func image(url: String, placeholderNamed: String) { 

Так что я осуждал старый метод с этим:

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

Проблема в том, что я получаю следующую ошибку:

'renamed' argument of 'available' attribute must be an operator, identifier, or full function name, optionally prexied by a type name

ответ

2

У меня возникла проблема с частью renamed:. Для того, чтобы исправить это, просто изменить его на

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

Это не совсем понятно, в документации (или, по крайней мере, не очевидно), но построение строки буквальной аргументации для 'renamed' следует довольно строгим правилам; в вышеприведенном случае с использованием _ «полного имени функции» _ (что, imo, _could_ должно быть указано более четко в документах). Ваш ответ здесь фиксирует аргумент, поэтому теперь он действительно следует правилу, для которого «полное имя функции» _ (без разделения по запятой). – dfri

Смежные вопросы