2016-04-30 6 views
-3

に変数名としてクラス名を使用する:私は実行してUIViewクラスを拡張したいスウィフト

extension UIView { 
    var UIImage:UIImage { 
     get { 
      let image = .... 

      // ..... my code ....// 

      return image 

     } 
    } 
} 

私は、次のコンパイルエラーが表示されます。

'UIImage' used within its own type

誰もがそれを動作させる方法を知っていますか?

PS:私は単に別の名前を使用することができますが、私がここで求めているものではありません。

+1

?もっと意味のある名前でクラス関数を作成してみませんか?基本的には、名前空間全体を混乱させます。ちょうど 'varイメージをする:UIImage {...' – ozgur

+0

教育目的。また、Appleはそのスタイルを使っていくつかのタイプを変換します。 – rsc

+1

いいえ、そうではありません。 ivarを定義するときは、クラス名を使用しないでください。 'var image:UIImage {...'を実行し、 'myView.image'を呼び出してください。 – ozgur

答えて

1

あなたは、パッケージ名とプロパティのタイプ名を修飾する必要があります:あなたがこれを行うにはしたくないのはなぜ

extension UIView { 

    var UIImage: UIKit.UIImage { 
     let image = UIKit.UIImage() 

     // ..... my code ....// 

     return image 
    } 
} 
+1

'letイメージ= UIKit.UIImage()' – ozgur

+0

拡張機能は現在受け入れられましたが、UIImageの通常の使用方法(UIImage)( "checkbox_checked"という名前)が「関数型でないUIImageの値を呼び出せません」というエラーが発生しました。何か案が? – rsc

+0

'UIKit.UIImage(名前:" checkbox_checked ")' –

関連する問題