2010-01-04 5 views
3

Je fais le saut de Java en Objective-C. Je me demande s'il existe un concept analogue aux enums de Java, qui supporte les implémentations de méthodes. Je me rends compte qu'Objective-C a de simples énumérations en C, mais ce ne sont en réalité que des ints.Énumérations en Objective-C

Je cherche à empêcher les passerelles - Java enums serait parfait.

Répondre

6

Objective-C est juste C avec un balisage supplémentaire pour les objets, aucun nouveau type n'a été ajouté.

Cela signifie, non.

Pour les indicateurs exclusifs mutuels, Apple utilise des chaînes.

header.h

extern NSString * const kNSSomeFlag; 
extern NSString * const kNSOtherFlag; 
extern NSString * const kNSThirdFlag ; 

code.m

NSString * const kNSSomeFlag = @"kNSSomeFlag"; 
NSString * const kNSOtherFlag = @"kNSOtherFlag"; 
NSString * const kNSThirdFlag = @"kNSThirdFlag"; 

… 

void myFunction(NSString *flag) 
{ 
    if (flag == kNSSomeFlag) { 
     // the code 
    } 
} 

Un exemple de cela se trouve dans le NSDistributedNotificationCenter.