2016-09-12 3 views
2

Swift 3でSword 2の構文を変換した後、私はSwift 3でXcode 8 GM(バージョン8.0(8A218a))、私のRepoはhttps://github.com/yeahdongcn/UIColor-Hex-Swift/tree/Swift-3.0を使用しています。次のgetterに2つのブレークポイントを設定してから、テストを実行しました。最初のものは呼び出されませんでしたが、2番目のdebugDescriptionが呼び出されます。open override var description:文字列がSwift 3で呼び出されていません

open override var description: String { 
    return self.hexString(true) 
} 

open override var debugDescription: String { 
    return self.hexString(true) 
} 

私はそれはあなたが拡張のメソッドをオーバーライドすることはできません同じ

//: 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 

enter image description here

答えて

1

を作品遊び場を作成しました。サブクラスを使用する必要があります。コンパイラは不平を言っているはずです。

Swift 2.xで動作していた可能性がありますが、これは正しい動作ではありません。

関連する問題