我是Swift的初学者.
我有这个错误
无法使用类型为'($ T10,CGFloat)'的参数列表调用'+'
func loadBackground(key: NSString, width:CGFloat, height:CGFloat) -> UIImage!{
var imageName = key + "_" + width + "_" + height
return UIImage(named: imageName)!
}
Run Code Online (Sandbox Code Playgroud)
该错误表明您正在尝试连接字符串和浮点数(或者无论如何不能连接的不同类型+).您可以像这样插入和构造字符串:
func loadBackground(key: NSString, width:CGFloat, height:CGFloat) -> UIImage!{
var imageName = "\(key)_\(width)_\(height)"
return UIImage(named: imageName)!
}
Run Code Online (Sandbox Code Playgroud)
在@ Grimxn的评论之后再说几句话......
首先,在调用方法并从帧/边界中获取值时,指定width和height作为CGFloats可能很方便,但它很可能在将来咬你(例如,想象一个具有几乎'完美'宽度的帧120.001- 或者任何例如,从一个部门出来的疯狂号码).因此,我相信Int在这种情况下s会更好地用于维持大小/文件名之间的(相对更安全的)映射.
PS.在你的情况下,a let可能比a更可取,var因为imageName它只是构造并返回而没有进一步修改,最后UIImage?作为返回类型将迫使你处理(或至少先检查)任何无法找到图像的情况,因此让你的代码更安全.
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |