2010-06-17 62 views
0

是否有一個Cocoa類與枚舉C的值有相似的功能?我知道我可以在Cocoa中使用枚舉,但是如果我想將一個枚舉放入一個NSArray(它只接受對象)呢?枚舉最接近的可可當量

回答

7

enum只是一個整數類型 - 您可以將它包裝在NSNumber中以將它放在NSArray中。

+0

+1我這樣做的頻率很高 – 2010-06-17 22:05:40

5

在Cocoa中,通常使用全局常量來代替邏輯上包含在集合中的值的地方的枚舉。例如:

NSString * const HandTool = @"HandTool__InternalValue"; 
NSString * const BrushTool = @"BrushTool__InternalValue"; 
NSString * const EraserTool = @"EraserTool__InternalValue"; 

例如,所有NSAttributedString鍵都是類枚舉的,但是以這種方式表示。

+5

使用枚舉的理由包括將值定義爲位掩碼的能力,您可以將它們組合在一起並便宜地測試其中的特定位,並且可以將它們用作「 switch'語句。使用對象的原因包括可以將它們用作字典中的鍵(如NSAttributedString屬性名稱所示)或作爲集合或歸檔中的對象使用,而不必將它們裝箱。 – 2010-06-19 05:59:20