if(image != nil){
mediaSize = String(image!.size.width) + "|" + String(image!.size.height)
}
O resultado deve ser como"400|300"
Recebo o erro:No exact matches in call to initializer
image
é UIImage
e estou enviando para o servidor antes de tentar converter o tamanho em string e é válido
Outras perguntas sobre isso não estão ajudando
O problema é que ambos
height
ewidth
sãoCGFloat
, que não podem ser convertidos diretamente para umString
usingString.init
.Você pode convertê-los
Double
e inicializá-losString
a partir doDouble
Ou simplesmente use a interpolação de String, que suporta
CGFloat
.No entanto, esteja ciente de que você está convertendo números de ponto flutuante para um
String
, então você pode acabar com um valor não amigável ao usuário com toneladas de casas decimais. Se você sabe que seus valores são inteiros, converta-os para inteiros usandoInt(image.size.width)
ou formate-os para um número fixo de casas decimais usandoString(format:_:)
ou umNumberFormatter
.Você também pode usar
String(format:...)
:Os
%0.0f
meios convertem float em string, SEM decimais .Então seu resultado seria
"400|300"