我試着去了解如何定義有效的元素列表的一類: 比方說,我有一個類People
,我需要接受只有3個字符串作爲可能的有效名稱 @"Luke"
,@"Paul"
,@"Mark"
。枚舉和NSDictionary的定義有效的元素列表中可可
我想用枚舉和的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關鍵字和定義到靜態變量的類......這可能是更好的方法嗎?
我確定有更好的方法來做你想做的事情,但目前還不清楚你實際上想做什麼。這些是*的唯一有效值*?在什麼情況下使用這些值,以及在什麼情況下它們的有效性是重要的? – Chuck
@Chuck我正在開發一個API的庫,其中一些函數只接受特定的值。所以我需要一種方法來限制只使用這些數據庫的開發人員。 – MatterGoal