2016-09-12 3 views
0

아래 코드 스 니펫 당 UIColor에 대한 유형 확장을 만들려고하지만 빌드 오류가 발생합니다. 내 유형 확장 메서드에서 UIColor 개체를 만들려고 할 때 UIColor 생성자가 내가 만든 UIColor 확장 캡슐화를 참조합니다. UIColor Type 확장 메소드에서 UIColor 객체를 인스턴스화하는 방법은 무엇입니까?유형 확장 메소드에서 유형을 인스턴스화하는 방법은 무엇입니까?

// Error: "Argument to call takes no parameters" 

     import UIKit 
     import Foundation 

     extension UIColor { 

      class UIColor { 
       var seventyPercentGreyColor : UIColor { 
        get { 
         let seventyPercent:CGFloat = (1.0 - 0.70) 
         // The below line of code produces a 
         // "Argument to call takes no parameters" build error 
         let color = UIColor(red: seventyPercent, green: seventyPercent, blue: seventyPercent, alpha:1.0) 
         return color 
        } 
       } 
      } 
     } 
+2

삭제'클래스 UIColor를 {}'- 당신이 '원하는 수준의 var에 seventyPercentGreyColor : UIColor를 {...}'대신 (당신이 할 수있는 또한 명시 적'get {}'을 제거하십시오) – Hamish

답변

1

그냥 정적으로 선언 할 수 있습니다. 방금 그레이 레벨을해야 할 경우 UIColor (흰색을 사용할 수 있습니다 : 알파 : 초기화 :

extension UIColor { 
    static var seventyPercentBlack: UIColor { return UIColor(white: 0.3, alpha: 1) } 
} 

UIColor.seventyPercentBlack // w 0,3 a 1,0 
관련 문제