2016-04-21 3 views
2

Meine erste Methode. Alles funktioniert gut .:Wie kann ich in meinem ViewController eine Funktion als Parameter übergeben und [weak self] beibehalten?

func fetchInitialItems(num: Int){ 
    firebaseRef?.observeSingleEventOfType(.Value, withBlock: { [weak self] snapshot in 
     if self != nil { 
      //perform calculations 
     } 
    }) 
} 

Ich möchte die Schließung einer anderen Methode seiner eigenen bewegen:

func fetchBlock(snapshot: FDataSnapshot!){ 
    //perform calculations 
} 

func fetchInitialItems(num: Int){ 
    firebaseRef?.observeSingleEventOfType(.Value, withBlock: withBlock: self.fetchBlock)  
} 

Ist dies der richtige Weg, es zu tun? Wie mache ich die zweite Lösung [weak self]? Ich sehe keinen Weg, das zu tun.

Antwort

2

Wie wäre es damit:

firebaseRef?.observeSingleEventOfType(.Value, withBlock: { [weak self] snapshot in 
    self?.initialFetchBlock(snapshot) 
}) 

Ich bin nicht sicher, dass wir dürfen außerhalb der Verschlussaufnahmeliste verwenden.

Verwandte Themen