comment faire un faible pointeur à soi-même dans swift à l'extérieur d'un bloc
je veux faire une faible pointeur à soi-même dans swift, comme la façon dont nous avons utilisé pour en objective-c comme
__weak Something *weakself = self;
J'ai trouvé des gens qui expliquent comment utiliser un "faible" à l'intérieur d'un bloc,
{ in [unowned self] ...}
mais je ne veux pas de définition des "weakself' à l'intérieur de mon bloc, je veux définir weakself à l'extérieur des blocs
Dans quel contexte avez-vous besoin d'une
a un bon point. Dans ce contexte pourrait le code dans l'un des d'un objet, les méthodes d'exécution, si
weak
référence à self
, si ce n'est dans le contexte de blocs/fermetures? Si vous voulez un delegate
propriété d'être faible, par exemple, vous venais de le déclarer comme tel (par exemple, weak var delegate: MyProtocol!
ou quoi que ce soit).a un bon point. Dans ce contexte pourrait le code dans l'un des d'un objet, les méthodes d'exécution, si
self
n'existait pas? Vous avez besoin d'un objet pour exécuter les méthodes.OriginalL'auteur user1709076 | 2015-04-19
Vous devez vous connecter pour publier un commentaire.
Il suffit de définir une référence faible avec la
weak
mot-clé:De la la documentation:
OriginalL'auteur Martin R
Il me semble que vous êtes en essayant d'éviter un cycle de conserver avec un bloc comme vous le faites en Objective-C, où, au lieu de référencement auto, vous pouvez créer une version faible:
Qui n'est pas la façon de Swift gère ce problème.
Au lieu de cela, c'est le concept d'une liste de capture, qui indique au compilateur qui référence le bloc de capture, et quoi faire à ce sujet. Vous devez chercher le Swift de la Programmation de l'ouvrage de Référence pour "Liste de Capture" et de lire sur le sujet. Pour citer le livre:
Extrait De: Apple Inc. “La Swift Langage de Programmation.” iBooks. https://itun.es/us/jEUH0.l
Édité 4 Janvier 2016:
Citer la partie de la Swift livre qui explique comment créer une liste de capture:
Extrait De: Apple Inc. “La Swift Langage de Programmation (Swift 2).” iBooks. https://itun.es/us/jEUH0.l
OriginalL'auteur Duncan C