Как вперед объявить этот объект:опережающее объявление для Objective-C интерфейсы
@interface MyClass : NSObject <AVAudioSessionDelegate>
{
}
@end
в Objective C
Как вперед объявить этот объект:опережающее объявление для Objective-C интерфейсы
@interface MyClass : NSObject <AVAudioSessionDelegate>
{
}
@end
в Objective C
Это вперед декларация типа ObjC:
@class MyClass;
И это предварительная декларация протокола ObjC:
@protocol AVAudioSessionDelegate;
Для тех из вас, кто интересуется, почему это полезно: форвардные декларации могут использоваться для значительного сокращения ваших зависимостей и значительного сокращения времени сборки, поскольку оно позволяет избежать заголовков и/или целых фреймворков (которые затем #import
др. Каркасы). Когда форвардные декларации не используются, многие ненужные заголовки видны другим частям вашей программы. Изменение одного заголовка может привести к перекомпиляции многих файлов, а время компиляции и ссылок увеличится. Поскольку типы ObjC всегда рассматриваются как указатели (на нашем уровне абстракции), в большинстве случаев достаточно декларации в начале. Затем вы можете объявить свои ivars в своем @implementation
или продолжении класса, после чего #import
может перейти в файл *.m
. Другая причина - избежать круговых зависимостей.
Это на самом деле не отвечает, как я должен прямо объявлять объекты @interface. Пример использования того, что я дал, будет полезен. – aerlfredith
Извините, ваш ответ. Решите мою проблему. Я просто не полностью понял, что вы имели в виду. Объект @interface также предопределен с помощью класса MyClass; Я ожидал чего-то большего, чем @ interface Myclass ;. Простите за это. THANKS – aerlfredith
@aerlfredith приветствуется :) – justin