2016-10-08 6 views
1

プロパティ初期化子内で "インスタンスメンバーを使用できません。コードから外観を削除することを推奨しないでください。動作しません。私はまた、self.appearence.kcirclebackroundを追加して、エラーを出しました。 UIViewController {私は素早く "self before run"エラーを受け取ります

public struct SCLAppearance { 
    let kDefaultShadowOpacity: CGFloat 
    let kCircleHeightBackground: CGFloat 
    let kCircleTopPosition: CGFloat 
    let kCircleBackgroundTopPosition: CGFloat 
    let kCircleHeight: CGFloat 
    let kCircleIconHeight: CGFloat 
    let kTitleTop:CGFloat 
    let kTitleHeight:CGFloat 
    let kWindowWidth: CGFloat 
    var kWindowHeight: CGFloat 
    var kTextHeight: CGFloat 
    let kTextFieldHeight: CGFloat 
    let kTextViewdHeight: CGFloat 
    let kButtonHeight: CGFloat 
    let contentViewColor: UIColor 
    let contentViewBorderColor: UIColor 
    let titleColor: UIColor 

`

、その後、私は "appearance.kCircleHeightBackground"

var appearance: SCLAppearance! 

// UI Colour 
var viewColor = UIColor() 

// UI Options 
open var iconTintColor: UIColor? 
open var customSubview : UIView? 



// Members declaration 
var baseView = UIView() 
var labelTitle = UILabel() 
var viewText = UITextView() 
var contentView = UIView() 
// "I get an error here at appearance.kCircleHeightBackground"__________var circleBG = UIView(frame:CGRect(x:0, y:0, width: appearance.kCircleHeightBackground, height: appearance.kCircleHeightBackground)) 
var circleView = UIView() 
var circleIconView : UIView? 
var duration: TimeInterval! 
var durationStatusTimer: Timer! 
var durationTimer: Timer! 
var dismissBlock : DismissBlock? 
fileprivate var inputs = [UITextField]() 
fileprivate var input = [UITextView]() 
internal var buttons = [SCLButton]() 
fileprivate var selfReference: SCLAlertView? 

public init(appearance: SCLAppearance) { 
    self.appearance = appearance 
    super.init(nibName:nil, bundle:nil) 
    setup() 
} 
でエラーを取得しています:kCircleHeightBackgroundのcgfloatが `オープンクラスSCLAlertViewに設定されているのはここ

です

Image of error i get

答えて

0

エラーには、イニシャライザで設定されるまで、appearanceプロパティを使用することはできません。プロパティはイニシャライザが実行される前に評価されるので、circleBGビューの目的のカスタマイズをイニシャライザに移動するだけです(たとえば、setup()-メソッド)。

+0

これは1つのオプションですが、唯一のオプションではありません。 –

+0

@MartinRああ、おもしろい!あなたは精緻化できますか? –

+0

@MartinRちょうど重複を読んで、この状況で怠け者を使うと問題を解決できるかどうかはわかりませんでした。クール! –

関連する問題