我正在研究可可Mac OS X應用程序,該應用程序爲NSRegularExpression搜索提供了一系列選項。這些選項都表示,像這樣的枚舉:動態生成一個枚舉參數?
enum {
NSRegularExpressionCaseInsensitive = 1 << 0,
NSRegularExpressionAllowCommentsAndWhitespace = 1 << 1,
NSRegularExpressionIgnoreMetacharacters = 1 << 2,
NSRegularExpressionDotMatchesLineSeparators = 1 << 3,
NSRegularExpressionAnchorsMatchLines = 1 << 4,
NSRegularExpressionUseUnixLineSeparators = 1 << 5,
NSRegularExpressionUseUnicodeWordBoundaries = 1 << 6
};
typedef NSUInteger NSRegularExpressionOptions;
我想有用戶從任何一個選項(這是一個系列的複選框)選擇,然後將結果傳遞給方法regularExpressionWithPattern:選擇:錯誤:。我以整數的形式接收這些選項,例如,用戶可能會選擇0和5。
我找不出什麼合適的技術在這裏。 選項參數是一個帶有按位或運算符的整數,但是如何根據用戶在這些複選框中的選擇動態構建它,以便我可以將它傳遞給該方法調用?
這裏有一個天真的和不正確的嘗試:
for (NSButtonCell * cell in [sender selectedCells]) {
NSNumber * tag = [NSNumber numberWithInteger:[cell tag] - 1];
[self.optionsString stringByAppendingString:[NSString stringWithFormat:@"%@|", [tag stringValue]]];
}
顯然,選項並不需要一個NSString。但我希望這能夠澄清我在做什麼,這樣你就明白了這個問題!
懶惰:我給以1開頭的選項做了標記。:-) –
方便的是,有一個'| ='運算符,在表達式中爲您節省了單詞'options'的一個實例。 –
謝謝。我在那工作。 – paulmelnikow