2012-10-24 37 views
1

我很驚訝地發現,Xcode中沒有對下面的代碼,這是用C無效發出一個錯誤:Objective-C enum的基礎類型能夠被指定嗎?

typedef enum : NSUInteger { 
    FLAG_A = 1, 
    FLAG_B = 2, 
    FLAG_C = 4 
} MyFlags; 

這似乎使NSUInteger基礎類型的MyFlags枚舉的,非常類似於C#的語法用於設置枚舉的基礎類型。

這個語法是做它看起來的,還是它的意思?

回答

4

它是從C++ 11中借用的一個功能,用於確保枚舉的特定大小。它允許在框架的公共API中使用枚舉,而不必擔心ABI最終會崩潰。

Clang implements this feature並允許它在Objective-C中用作語言擴展。

1

這將在目標c中正常工作。您可以在枚舉中爲這些參數設置任何值。

相關問題