假設我有以下幾點:iPhone - 保持字符串列表和相應的typedef枚舉
typedef enum functionType {ln, sin, sqrt} functionType;
NSArray *functions = [NSArray arrayWithObjects: @"ln", @"sin", @"sqrt", nil];
進一步假設*功能將無法在運行時更改。
問題 - 是否有任何方法可以設置更新這兩個結構的單個結構?所以我只需要跟蹤一個列表,而不是兩個。
爲了解釋發生了什麼 - 這個想法是來自用戶的字符串輸入將被存儲在類型爲functionType的變量中。稍後,我將得到如下代碼:
double valueOfFunction: (functionType) function withInput: (double) input
switch (function) {
case ln:
return ln(input);
case sin:
return sin(input);
case sqrt:
return sqrt(input);
//etc . . . could grow to include a lot of functions.
}
而且valueOfFunction需要很快。所以我不想在那裏做字符串比較。
我問了一個類似的問題,但沒有得到任何滿意的答案:http://stackoverflow.com/questions/1344801/converting-enum-into-a-class-hierarchy – 2010-03-28 20:38:56