Description:avertissement Analyzer: « décrément incorrect du compte de référence » pour
Disons que j'ai une classe qui contient UITabBarController
et un groupe de contrôleurs.
Maintenant, l'un des contrôleurs (specialController) n'est pas autorisé à être sélectionné par UITabBarController
. Je lui montre de manière différente (mais je veux toujours l'avoir dans viewControllers
de UITabBarController
)
En déniant specialController à choisir, je me manque init
fait par UITabBarController
. C'est pourquoi j'appelle le init
à la main.
Le problème:
Quand je lance « Build and Analyzie », je reçois d'avertissement
décrément incorrect du compte de référence d'un objet qui est n'appartient pas à ce point par la appelant
dans la ligne avec mon init
. Mais, l'application fonctionne. Qu'est-ce que je rate?
code:
dans le ClassA.m
//called in viewDidLoad
- (void)makeVoodooOnViewControllers {
//set all variables etc.
for (int i = 0; i<controllersCount; i++) {
UIViewController *tabViewController = [tabBarController.viewControllers
objectAtIndex:i];
//CUT - some irrelevant code
if ([tabViewController isKindOfClass:[specialController class]]) {
//line below throws a warning
specialControllerProperty = [((specialController *)tabViewController) init];
}
}
Si je ne suis pas clair, s'il vous plaît laissez-moi savoir :). Merci!
Vous utilisez 'retain' pour augmenter le nombre de références, pas' init' – ughoavgfhw
Huh? Je ne veux pas augmenter le nombre de références, je veux initier le contrôleur. S'il vous plaît, vérifiez ma description :) – Solo