第
首先,枚舉是編譯類型結構。
其次,你有一個範圍界定問題。因爲您正在定義if
和else
範圍內的枚舉類型。它不會在if..else..
聲明之外具有可視性。
您需要找到一種不同的方式來區分基於狀態的索引。
更新基於OP的後續的問題:
OK,你需要地圖的某種。例如,你可以這樣做:
定義你的枚舉。
enum {
Form_FirstName = 0,
Form_NamePrefix,
Form_LastName,
Form_Email,
Form_Phone
};
假設你的類有一個indexes
伊娃與通常@property
和@synthesize
,請設置您的索引:
if (foo>0) {
self.indexes = [NSArray arrayWithObjects:[NSNumber numberWithInt:Form_FirstName],[NSNumber numberWithInt:Form_NamePrefix],[NSNumber numberWithInt:Form_LastName],[NSNumber numberWithInt:Form_Email],[NSNumber numberWithInt:Form_Phone],nil];
}
else {
self.indexes = [NSArray arrayWithObjects:[NSNumber numberWithInt:Form_FirstName],[NSNumber numberWithInt:Form_LastName],[NSNumber numberWithInt:Form_Email],[NSNumber numberWithInt:Form_Phone],nil];
}
在其他地方,當你需要一個枚舉領域轉化爲一個索引:
NSInteger index = [self.indexes indexOfObject:[NSNumber numberWithInt:<Form Enumeration Value>]];
編譯器說什麼? – onnoweb