open override var description: String not called in Swift 3
open override var description: String not called in Swift 3
我现在使用 Xcode 8 GM(版本 8.0 (8A218a))和 Swift 3,我的回购是:https://github.com/yeahdongcn/UIColor-Hex-Swift/tree/Swift-3.0 在我转换 Swift 2 语法 Swift 3,我在下面设置了两个断点 getter 然后我 运行 测试,第一个没有被调用,但是第二个 debugDescription 被调用了。
open override var description: String {
return self.hexString(true)
}
open override var debugDescription: String {
return self.hexString(true)
}
我创建了一个 playground,效果一样
//: Playground - noun: a place where people can play
import UIKit
extension UIColor {
public func hexString(_ includeAlpha: Bool) -> String {
var r: CGFloat = 0
var g: CGFloat = 0
var b: CGFloat = 0
var a: CGFloat = 0
self.getRed(&r, green: &g, blue: &b, alpha: &a)
if (includeAlpha) {
return String(format: "#%02X%02X%02X%02X", Int(r * 255), Int(g * 255), Int(b * 255), Int(a * 255))
} else {
return String(format: "#%02X%02X%02X", Int(r * 255), Int(g * 255), Int(b * 255))
}
}
open override var description: String {
return self.hexString(true)
}
open override var debugDescription: String {
return self.hexString(true)
}
}
let color = UIColor.yellow
color.description
color.debugDescription
您不能覆盖扩展中的方法。您将需要使用子类。编译器应该会抱怨。
它可能在 Swift 2.x 中有效,但那不是正确的行为。
我现在使用 Xcode 8 GM(版本 8.0 (8A218a))和 Swift 3,我的回购是:https://github.com/yeahdongcn/UIColor-Hex-Swift/tree/Swift-3.0 在我转换 Swift 2 语法 Swift 3,我在下面设置了两个断点 getter 然后我 运行 测试,第一个没有被调用,但是第二个 debugDescription 被调用了。
open override var description: String {
return self.hexString(true)
}
open override var debugDescription: String {
return self.hexString(true)
}
我创建了一个 playground,效果一样
//: Playground - noun: a place where people can play
import UIKit
extension UIColor {
public func hexString(_ includeAlpha: Bool) -> String {
var r: CGFloat = 0
var g: CGFloat = 0
var b: CGFloat = 0
var a: CGFloat = 0
self.getRed(&r, green: &g, blue: &b, alpha: &a)
if (includeAlpha) {
return String(format: "#%02X%02X%02X%02X", Int(r * 255), Int(g * 255), Int(b * 255), Int(a * 255))
} else {
return String(format: "#%02X%02X%02X", Int(r * 255), Int(g * 255), Int(b * 255))
}
}
open override var description: String {
return self.hexString(true)
}
open override var debugDescription: String {
return self.hexString(true)
}
}
let color = UIColor.yellow
color.description
color.debugDescription
您不能覆盖扩展中的方法。您将需要使用子类。编译器应该会抱怨。
它可能在 Swift 2.x 中有效,但那不是正确的行为。