Comment puis-je ajouter une valeur booléenne pour un NSDictionary?
Bien, pour les entiers je voudrais utiliser NSNumber
. Mais OUI et NON ne sont pas des objets, je suppose. A. f.un.j'.k. Je peux seulement ajouter des objets à un NSDictionary
, droit?
Je ne pouvais pas trouver n'importe quel classe wrapper pour les booléens. Est-ce là tout?
Vous devez vous connecter pour publier un commentaire.
Vous utilisez NSNumber.
Il a init... et le nombre... de méthodes qui prennent des valeurs booléennes, comme il le fait pour les nombres entiers et ainsi de suite.
De la NSNumber de référence de classe:
et:
et:
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 convertit
BOOL
àNSNumber
, ce qui est acceptable pourNSDictionary
.Si vous êtes déclarant comme une littérale et que vous utilisez clang v3.1 ou supérieur, vous devez utiliser @N /@OUI si vous êtes à la déclarer comme un littéral. E. g.
Pour plus d'info sur:
http://clang.llvm.org/docs/ObjectiveCLiterals.html
NSDictionary
, pas unNSMutableDictionary
. Le fait de les affecter@YES
àfoo[@"bar"]
n'est pas possible depuis@{ @"key": @NO }
n'est pas mutable.Comme jcampbell1 souligné, maintenant, vous pouvez utiliser la syntaxe littérale pour NSNumbers:
Essayez ceci:
La sortie se présente comme suit:
Booléen est VRAI pour " Pratique'
Booléen est FAUX pour " Sachin'
[NSNumber numberWithBool:NO]
et[NSNumber numberWithBool:YES]
.