Je savais que si vous définissiez un tas d'objets NSString @ "" dans le code source sous Mac OS. Ces NSStrings seront stockés dans un segment de la bibliothèque Mach-O.Comment le chargeur Mach-O charge-t-il différents objets NSString?
Section
sectname __ustring
segname __TEXT
addr 0x000b3b54
size 0x000001b7
offset 731988
align 2^1 (2)
reloff 0
nreloc 0
flags 0x00000000
reserved1 0
reserved2 0
Si je Hexa le binaire, ils sont étroitement alignés l'un par un avec un 0x0000
comme séparateur. Ce que je veux savoir, c'est comment le chargeur de Mac OS X charge-t-il ces NSStrings quand le programme s'exécute? Sont-ils chargés simpily en reconnaissant le séparateur 0x0000
ou il s'agit d'une table de décalage de chaîne ailleurs dans le pointage binaire pour séparer les objets NSString? Merci.
(Ce que je veux vraiment faire est l'augmentation de la longueur de l'un des NSString, donc je dois savoir comment le chargeur reconnaître ces objets distincts)
ajouté: Je sais si vous définissez CStrings comme @ "abc" dans le code va aller au segment cstring. Si c'est une chaîne comme @ "" "" avec des caractères ascii, elle ira à la section ustring selon mes recherches.
telai weiguan lz – ZelluX