2016-05-04 2 views
1

У меня есть NS_Enum:Как объявить общественную собственность NS_Enum в заголовочном файле

typedef NS_ENUM(NSInteger, Months) { 
    January, 
    February, 
    March, 
    April, 
    May 
}; 

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

@interface NSObject (NSDateExtension) 
@property (nonatomic,strong) typedef enum Months; 
@end 
+0

В стороне, это действительно плохая идея добавить свойство, подобное этому, в NSObject. – Avi

+0

Спасибо @Avi, я просто думал об этом. Лучше сделать 'NSDateExtension' категорией' NSDate' вместо 'NSObject', правильно? – chicobermuda

+0

Это зависит от того, что вы пытаетесь выполнить. У Cocoa уже есть богатый API календаря и даты, и вполне вероятно, что вы уже можете сделать то, что вы пытаетесь выполнить с перечислением каким-то другим способом. – Avi

ответ

1

Ваш синтаксис неверен. Это должно быть:

@interface NSObject (NSDateExtension) 
@property (nonatomic, assign) Months propertyName; 
@end 
+0

Я получаю 'Неизвестный тип name 'Months'', хотя автозаполнение предлагает месяцы как тип – chicobermuda

+0

Убедитесь, что ваш перечисление отображается в файл, в котором вы используете свойство. – Jelly

+0

@dperk это должно работать. я попробовал с предоставленным ответом .. – Vats

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