2017-12-29 4 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) 

Aber ich bekomme Fehler Compiler:schneller Anruf selbst innerhalb Schließung in init

'self' used before self.init call

ich es, um gearbeitet, mit erster Schließung Null initialisiert und rechts nach der Einstellung.

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

Aber ich verstehe nicht, was das Problem darin in erster Art und Weise zu tun. Danke für die Bereitstellung von Informationen

Antwort

-1

In der ersten Bedingung verwendeten Sie self vor self hatte init in der Schließung. Das ist nicht erlaubt.

Verwandte Themen