Что такое цель -Интерфейс и реализация класса C 2.0, преобразованные в GCC или Clang

Поскольку Objective -C является надмножеством C, все операторы Objective -C, специфичные для C, преобразуются в операторы C во время компиляции файла.m (препроцессором, я думаю ). Так, например, выражение сообщения типа [receiver method]преобразуется в вызов функции обмена сообщениями objc_msgSend(receiver, selector).

Мой вопрос :, есть ли у меня такое определение класса:

@interface ClassA {
    int var1;
    float var2;
    id var3;
}

-(void) method1;
-(int) method2: (int) num1;
@end

@implementation ClassA
-(void) method1 {
    // Implementation of the method
}

-(int) method2: (int) num1 {
    // Implementation of the method
}

@end

во что он конвертируется компилятором (в версии 2.0 Objective -C )? Преобразуется ли он в вызовы таких функций, как objc_allocateClassPair(), class_addIvar(), class_addMethod()и objc_registerClassPair(), чтобы создать класс, добавить его переменные экземпляра, добавить его методы и зарегистрировать класс соответственно (. структура класса фактически определяется во время выполнения, а не загружается как структура из исполняемого файла )?

6
задан Lebyrt 8 May 2014 в 11:59
поделиться