Question

Je dispose d'un fichier plist qui contient un tableau de dictionnaires. Voici un d'entre eux:

Fred Dictionnaire
Nom Fred
isMale [case est cochée]

Alors maintenant, je suis mon objet Initialisation personne avec le dictionnaire que j'ai lu à partir du fichier plist:

 -(id) initWithDictionary: (NSDictionary *) dictionary {
    if (self = [super init])
    self.name = [dictionary valueForKey: @"Name"];
    self.isMale = ????
  }

Comment puis-je achèverai le code ci-dessus afin que self.isMale est réglé sur OUI si la case est cochée dans le fichier plist, et NON si ce n'est pas. De préférence également réglée sur NO s'il n'y a pas isMale clé dans le dictionnaire.

Était-ce utile?

La solution

BOOL valeurs de généralement stocké dans des récipients obj-c enveloppés dans NSNumber objet. S'il est si dans votre cas, alors vous pouvez récupérer bool valeur à l'aide:

self.isMale = [[dictionary objectForKey:@"isMale"] boolValue];

Autres conseils

Vladimir est juste, je vais juste dire carillon et il est bon de vérifier que les valeurs de la exist plist ainsi, sinon le mettre à une valeur par défaut habituellement.

Quelque chose comme:

id isMale = [dictionary valueForKey:@"isMale"];
self.isMale = isMale ? [isMale boolValue] : NO;

qui vérifie si la valeur de la clé « isMale » existe dans le dictionnaire. Si elle le fait, alors il obtient le boolValue de celui-ci. Si elle ne le fait pas, alors il met self.isMale la valeur par défaut de NO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top