/ / Maintien d'une référence faible au contrôleur ios dans la classe cpp - ios, objective-c, compte automatique

Maintien d'une référence faible au contrôleur ios en classe cpp - ios, objective-c, comptage automatique

J'ai une classe c ++ dans un fichier mm. La classe a reçu un pointeur sur un contrôleur et détient une référence à ce dernier. Il semblerait que la classe cpp contienne une référence forte au contrôleur et qu’elle cause des problèmes de mémoire.

Comment puis-je stocker une référence faible au contrôleur?

Réponses:

0 pour la réponse № 1

Vous pouvez désactiver ARC pour des fichiers individuels dans XCode sous l’onglet "Build Phases" des propriétés de la cible de construction. Développez la section "Compiler les sources" et ajoutez -fno-objc-arc aux drapeaux du compilateur. Dans de nombreux tutoriels, il est recommandé de désactiver ARC dans les classes cpp.

Maintenant, tous vos NSObjects de cette classe auront besoin d’une gestion manuelle de la mémoire (avec appel retain/release méthodes).


0 pour la réponse № 2

Un fichier mm est un fichier objective-c ++, et toutles classes qui ont la même gestion de la mémoire émet un objet objective-c, à l'exception des objets c ++. Ainsi, si l'objet de la fuite dans votre question n'est pas un objet c ++, rendez-le "faible". Si l'objet est c ++, vous aurez évidemment besoin d'une stratégie différente.