将 UIImage.size 转换为字符串

问题描述 投票:0回答:1
if(image != nil){
    mediaSize = String(image!.size.width) + "|" + String(image!.size.height)
}

结果应该是这样的

"400|300"

我收到错误:

No exact matches in call to initializer

image
UIImage
,在尝试将大小转换为字符串之前我将其上传到服务器并且它是有效的

与此相关的其他问题没有帮助

ios swift uikit uiimage
1个回答
0
投票

问题在于,

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
将它们格式化为固定的小数位数。

© www.soinside.com 2019 - 2024. All rights reserved.