Eh bien, pour les nombres entiers, j'utiliserais NSNumber
. Mais OUI et NON ne sont pas des objets, je suppose. Afaik je ne peux ajouter des objets qu'à un NSDictionary
, non?
Je n'ai pas trouvé de classe wrapper pour les booléens. Y a-t-il?
Eh bien, pour les nombres entiers, j'utiliserais NSNumber
. Mais OUI et NON ne sont pas des objets, je suppose. Afaik je ne peux ajouter des objets qu'à un NSDictionary
, non?
Je n'ai pas trouvé de classe wrapper pour les booléens. Y a-t-il?
Vous utilisez NSNumber.
Il a des méthodes init ... et number ... qui prennent des booléens, tout comme il le fait avec des entiers et ainsi de suite.
À partir de la référence de classe NSNumber :
// Creates and returns an NSNumber object containing a
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value
et:
// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value
et:
// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"someKey", nil];
@YES
est le même que[NSNumber numberWithBool:YES]
La nouvelle syntaxe depuis
Apple LLVM Compiler 4.0
La syntaxe est convertie
BOOL
enNSNumber
, ce qui est acceptable pourNSDictionary
.la source
Si vous le déclarez comme un littéral et que vous utilisez clang v3.1 ou supérieur, vous devez utiliser @NO / @YES si vous le déclarez comme un littéral. Par exemple
Pour plus d'informations à ce sujet:
http://clang.llvm.org/docs/ObjectiveCLiterals.html
la source
NSDictionary
, pas unNSMutableDictionary
. L'affectation@YES
àfoo[@"bar"]
n'est donc pas possible car elle@{ @"key": @NO }
n'est pas modifiable.Comme jcampbell1 l'a souligné, vous pouvez maintenant utiliser la syntaxe littérale pour NSNumbers:
la source
Essaye ça:
La sortie sera la suivante:
Boolean est TRUE pour ' Pratik '
Boolean est FALSE pour ' Sachin '
la source
[NSNumber numberWithBool:NO]
et[NSNumber numberWithBool:YES]
.