sur Mac OS X Utilisation de l'objectif-C 2, les faisceaux de plug-in peuvent être compilés avec l'une des trois réglages de collecte des ordures: p>
-fobjc-gc code>) li>
- requis (
-fobjc-gc-seulement code>) li>
ol>
Comment peut-on interroger par programme un faisceau de plug-in compilé pour déterminer lequel de ces trois paramètres a été utilisé? P>
3 Réponses :
Cela fait partie du segment __Objc, mais je ne connais aucune API qui l'expose.
déchets collectés: p> non déchets recueillis: p > cristi:tmp diciu$ otool -v -o ./a.out
./a.out:
Contents of (__DATA,__objc_classrefs) section
00000001000010b0 0x0
Contents of (__DATA,__objc_imageinfo) section
version 0
flags 0x0
Il est probablement plus facile de simplement essayer d'essayer de charger le paquet à l'aide de la méthode -LoadandreturnErurror de Nsbundle: code>. Si le paquet ne se charge pas en raison du fait que ses paramètres de GC sont différents de ceux de votre application, vous obtiendrez un Nsexecutableruntimemismascatcher code>. P>
Après la réponse de Diciu , vous pouvez utiliser le Mach-O API . Vous devez analyser les segments contenus dans le fichier binaire et rechercher la Vous pouvez également jeter un coup d'œil sur le Projet de classeDump . Il a un analyseur de mach-o complet complet. P>