2016-10-08 69 views
1

我得到一個「前自我運行」,「不能使用實例成員‘外觀’屬性初始值設定範圍內;在此之前的‘自我’經營的初始值是可用」。請不要建議從代碼中刪除外觀,這是行不通的。我還添加了一個self.appearence.kcirclebackround並得到了錯誤。我得到一個迅速錯誤

這裏就是kCircleHeightBackground CGFloat的設置 '公開課SCLAlertView:UIViewController的{

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() 
} 

Image of error i get

回答

0

由於錯誤提到,您不能使用您的appearance屬性,直到它已在初始化程序中設置。在初始化器運行之前評估您的屬性,因此您唯一的選擇是將您所需的定製視圖移動到初始化器中,例如您的setup()-方法。

+0

這是一種選擇,但不是唯一的選擇。 –

+0

@MartinR哦,有趣!你能詳細說明嗎? –

+0

@MartinR剛看過重複,不知道在這種情況下使用懶惰可以解決問題。涼! –