Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

weak self w bloku z computed property


  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 OneGhost

OneGhost
  • 296 postów

Napisano 12 marca 2016 - 09:38

Czy w bloku który jest zwracany przez computed property powinienem stosować weak self? Mam klasę A, w której jest zdefinowane:

    var defaultFinishBlock: ((NSURLSession, NSData?, NSURLResponse?, NSError?) -> ())? { return nil }

Klasy dziedziczące po A nadpisują defaultFinishBlock. Czy powinienem w definicjach tych bloków stosować weak self? Wydaje mi się, że nie, ponieważ jako że jest to computed property nie ma mowy o referencji do tego bloku, ale chciałem się upewnić. Przykładowo:
 
    override var defaultFinishBlock: ((NSURLSession, NSData?, NSURLResponse?, NSError?) -> ())? {

        return { [weak self, deviceToken] (session, data, response, error) in

            ...

        }

    }

 
Czy weak self jest tu zbędne? Chociaż z drugiej strony to jeśli przypiszę wartość tego do jakiejś innej zmiennej, to wtedy powstanie retain cycle tak? Np.
 
var ref = defaultFinishBlock
 
Prawdopodobnie coś takiego nie będzie miało miejsca, ale na wszelki wypadek pewnie lepiej zostawić weak self?

Użytkownik Damian Dudycz edytował ten post 12 marca 2016 - 09:59





Użytkownicy przeglądający ten temat: 3

0 użytkowników, 3 gości, 0 anonimowych