if(image != nil){
mediaSize = String(image!.size.width) + "|" + String(image!.size.height)
}
结果应该是这样的
"400|300"
我收到错误:
No exact matches in call to initializer
image
是 UIImage
,在尝试将大小转换为字符串之前我将其上传到服务器并且它是有效的
与此相关的其他问题没有帮助
问题在于,
height
和width
都是CGFloat
,无法使用String
直接转换为String.init
。
您可以将它们转换为
Double
,然后从 String
初始化
Double
guard let image else { return }
let width = Double(image.size.width)
let height = Double(image.size.height)
mediaSize = String(width) + "|" + String(height)
或者简单地使用字符串插值,它确实支持
CGFloat
。
mediaSize = "\(image.size.width) | \(image.size.height)"
但是,请注意,您正在将浮点数转换为
String
,因此您最终可能会得到一个带有大量小数位的非用户友好值。如果您知道您的值是整数,请使用 Int(image.size.width)
将它们转换为整数,或使用 String(format:_:)
或 NumberFormatter
将它们格式化为固定的小数位数。