【发布时间】:2016-01-19 00:43:25
【问题描述】:
我正在为 UIColor 编写一个简单的扩展来获取基于 this answer 的十六进制字符串:
import UIKit
extension UIColor {
public static func colorWithString (hex:String) -> UIColor {
var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString
if (cString.hasPrefix("#")) {
cString = (cString as NSString).substringFromIndex(1)
}
if (cString.characters.count != 6) {
return UIColor.grayColor()
}
let rString = (cString as NSString).substringToIndex(2)
let gString = ((cString as NSString).substringFromIndex(2) as NSString).substringToIndex(2)
let bString = ((cString as NSString).substringFromIndex(4) as NSString).substringToIndex(2)
var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0;
NSScanner(string: rString).scanHexInt(&r)
NSScanner(string: gString).scanHexInt(&g)
NSScanner(string: bString).scanHexInt(&b)
return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(1))
}
}
现在我可以清楚地看到返回类型是UIColor,但是当我尝试使用它时:
UIColor.colorWithString("F9264E")
我明白了:
无法将“UIColor”类型的返回表达式转换为“[UIColor]”类型的返回表达式
发生了什么事?
【问题讨论】:
-
您的代码在 Playgrounds 中对我来说运行良好,您的环境是什么?
-
Xcode 7.2,面向 iOS 9.2。
-
它工作正常
UIDeviceRGBColorSpace 0.976471 0.14902 0.305882 1我和你一样的环境,有些讨厌
标签: ios swift swift-extensions