2017-12-29 17 views
0
convenience init(title: String!, 
    datePickerMode: UIDatePickerMode, 
    selectedDate: Date!, 
    origin view: UIView!) { 

     self.init(title: title, 
        datePickerMode: datePickerMode, 
        selectedDate: selectedDate, 
        doneBlock: { [weak self] (_, date , _) in 
           guard let sself = self else { return } 
           sself.done.next(date as! Date) 
        } 
      , 
      cancel: { [weak self] (_) in 
           guard let sself = self else { return } 
           sself.cancel.next() 
        } 
      , 
      origin: view) 

しかし、私は、コンパイラのエラーを取得:迅速なコール・自己

'self' used before self.init call

私は第1の閉鎖はnilで初期化し、直後に設定して、それを周りに働きました。

convenience init(title: String!, 
       datePickerMode: UIDatePickerMode, 
       selectedDate: Date!, 
       origin view: UIView!) { 

    self.init(title: title, 
       datePickerMode: datePickerMode, 
       selectedDate: selectedDate, 
       doneBlock: nil, 
       cancel: nil, 
       origin: view) 


    self.onActionSheetDone = { [weak self] (_, date , _) in 
     guard let sself = self else { return } 
     sself.done.next(date as! Date) 
    } 


    self.onActionSheetCancel = { [weak self] (_) in 
     guard let sself = self else { return } 
     sself.cancel.next() 
    } 

しかし、私は最初の方法でそれを行う際の問題を理解していません。 いくつかの情報をお寄せいただきありがとうございます

答えて

-1

selfの前にselfが使用されました。これは許可されていません。