J'ai une fonction C heightParameter qui est un outil simple que j'utilise dans un de mes UIViewController
s. Je déclare ceci seulement dans mon implémentation principale de chaque sous-classe UIViewController
(dans le .m) au-dessus de mes autres fonctions, de sorte que je n'ai même pas eu à le déclarer dans l'en-tête.XCode: symbole en double
Pour une raison quelconque, j'obtiens des symboles en double dans toutes les autres sous-classes dans lesquelles je les utilise, malgré leur implémentation privée. Il se trouve dans le bloc principal @implementation @end pour chaque sous-classe et ne devrait être vu par rien d'autre, alors comment est-il vu globalement?
La statique ne l'aurait-elle pas forcée à être globale? Je pensais que statique ferait une mise en œuvre dans toute l'application? Ou fait-il cela, mais permet plusieurs implémentations? – RileyE
C'est global * sans * 'static'. L'ajout de 'static' restreindra l'accès à ce symbole à une seule unité de compilation. Cela signifie que vous pourriez avoir une implémentation séparée pour chaque fichier '.m'. Pourquoi n'en faites-vous pas une méthode privée? Cela semblerait être l'approche la plus logique. Une bonne référence pour comprendre 'static': http://stackoverflow.com/questions/572547/what-does-static-mean-in-a-c-program –
Oh. Je suppose que j'avais un malentendu sur ce qu'était l'électricité statique, alors. Merci! Mais en le rendant privé, voulez-vous dire en faire une fonction Objective-C? Ou voulez-vous dire en faire une fonction Objective-C ET l'ajouter à une catégorie privée? – RileyE