2014-11-21 2 views
0

Я выполняю упражнение, когда мне нужно создать расширение класса вместе с пользовательским методом. Я решил использовать typedef, чтобы разрешить использование параметров в моем методе.Расширения класса и объявление typedef

Вот код заголовка, который работает:

#import "XYZPerson.h" 

typedef NS_ENUM(NSUInteger, XYZNameDisplay) { 
    XYZNameDisplayDefault, 
    XYZNameDisplayReversed 
}; 

@interface XYZPerson (XYZNameDisplay) 

- (NSString *)xyz_nameDisplayWithParameter:(XYZNameDisplay)p; 

@end 

Два вопроса отсюда:

  1. Какова область моего ЬурейеЕ?
  2. Каковы последствия объявления и переменной экземпляра за пределами @interface или @"implementation?
  3. Является ли typedef эквивалентом переменной экземпляра?

Редактировать 21-ноябрь-2014: Я попытался поместить typedef между скобками в @"interface, но он возвращает ошибку.

Спасибо!

ответ

1
  1. Объем typedef является любой файл, который включает в себя/импортирует заголовочный файл, содержащий ЬурейеЕ.

  2. Переменная, объявленная вне @interface или @implementation, не является переменной экземпляра. Это будет какой-то глобальный (в зависимости от того, где он объявлен).

  3. typedef не является переменной ни одного вида. Это тип данных.

FYI - ни один из ваших вопросов не имеет ничего общего с расширениями класса.

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