2012-01-09 2 views
1

в файле заголовка, структура ivar состоит из трех элементов: -Что содержит ivar?

имя, тип и офсет.

Я предполагаю, что имя предназначено для хранения имени переменной.

Смещение предназначено для хранения расстояния в байтах от начала структуры.

Скажите, пожалуйста, если я прав насчет этих двух? может ли кто-нибудь объяснить мне, что такое тип? Является ли это типом данных или областью определения того, является ли он общедоступным, приватным или защищенным.

ответ

1

Это строка C, содержащая кодировку типа переменной экземпляра. См. Type Encodings в локальной копии руководства по программированию времени выполнения Objective-C.

Вы не должны получить доступ к Ivar полей непосредственно, хотя, потому что Ivar является непрозрачным типом. Для этого лучше использовать ivar_getTypeEncoding().

+0

Тогда как информация о сфере видимости переменных хранится как public, private и protected? –

+0

, кстати, был ли я прав о двух других? –

+1

Спецификатор области видимости - это директива компилятора. Насколько мне известно, это не влияет на время выполнения, оно просто генерирует ошибки во время компиляции. Вы можете получить доступ ко всем иварам во время выполнения, независимо от директив области. И да, вы правильно знаете имя и смещение ivar. – Costique

Смежные вопросы