2012-05-29 1 views
27

Ho visto che è consuetudine utilizzare una proprietà booleana come flag. qualcosa del genere:Posso usare un enum come proprietà nell'obiettivo C

@property (nonatomic) BOOL commaAlreadyIntroduced; 

Ho bisogno di qualcosa del genere ma con almeno 3 o 4 stati.

Posso usare un enum?

L'enum standalone dovrebbe essere simile:

typedef enum stackState{ 
    empty, oneOperand, operandAndOperator, fullStack 
}stackState; 
+0

duplicato di http://stackoverflow.com/questions/6863167/objective-c-getter-and-setter-properties-for-enum –

+0

possibile duplicato di http://stackoverflow.com/questions/7126177/using- a-typedef-enum-in-my-object-class – diegoreymendez

+3

Si dovrebbe davvero usare typedef NS_ENUM. – paulrehkugler

risposta

50

Sì, non è un problema:

@property (nonatomic, assign) stackState yourIvar; 
+1

Ha funzionato. Grazie. – bursyllac

2

@property (nonatomic, assegnare) enum stackState yourIvar;

(stava diventando errori fino a quando ho aggiunto enum)

4
@property (nonatomic, assign) enum stackState stackStateVar; 

Senza 'enum' aggiunto, mio ​​test di unità tenute mostrando errori.

+0

questo post è qui da 4 anni, non credo che ogni nuova risposta possa avere molta attenzione. –

+0

Ti stai sbagliando – Renetik