Я пытаюсь понять, как определить список допустимых элементов для класса:
Допустим, у меня есть класс People
, и мне нужно принять только 3 строки в качестве допустимых имен
@"Luke"
@"Paul"
@"Mark"
.
Я подумал использовать комбинацию enum и NSDictionary таким образом (но я, очевидно, не уверен в правильности этого метода):
//INTERFACE*********************
typedef enum {
Luke,Paul,Mark
}ValidName;
@interface Person : NSObject{
// some code
}
@end
//IMPLEMENTATION*******************
@interface Person(private){
NSMutableDictionary *_validNamesDict;
}
@end
@interface Person:NSObject
- (id)init
{
self = [super init];
if (self) {
_validNamesDict = [[NSMutableDictionary alloc] init];
[_validNamesDict setObject: @"Luke" forKey:[NSNumber numberWithInt: Luke]];
[_validNamesDict setObject: @"Paul" forKey:[NSNumber numberWithInt: Paul]];
[_validNamesDict setObject: @"Mark" forKey:[NSNumber numberWithInt: Mark]];
}
return self;
}
//Some code ....
Теперь в остальной части класса я обращаюсь к этому имени с помощью:
[_validNameDict objecWithKey:[NSNumber numberWithInt: Luke]];
Я почти уверен, что это не лучший метод. Не могли бы вы предложить мне правильный способ справиться с этой ситуацией? Я читал кое-что об использовании ключевого слова extern и определения статической переменной в классе ... это может быть лучший метод?