2010-09-02 3 views
1

Il existe un fichier .plist avec une clé, disons XYZ et la valeur peut être activée ou désactivée.Comment utiliser BOOL et chaîne

Maintenant, j'ai cette méthode BOOL isEnabled().

Je veux vérifier la valeur pour cela dans ce plist et retourner BOOL basé sur on ou off.

Comment faire cela?

NSDictionary *plistDict = [NSDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.apple.BTServer.airplane.plist"]; 
BOOL Location = [[plistDict objectForKey:@"airplaneMode"] boolValue]; 

return Location; 

Ce code est pour l'option Toggle pour iPhone/SBSettings. Ici pour le changement de position, les valeurs sont stockées comme 1 et 0 mais pour le mode avion pour lequel je modifie ce code, les valeurs sont activées/désactivées. Comment puis-je activer/désactiver BOOL?

+0

Je ne suis pas sûr de ce que vous demandez exactement. Les variables typées BOOL contiennent les valeurs YES ou NO (ce sont des mots-clés Objective-C). –

Répondre

0

L'on/off est-il codé sous forme de chaîne? Si oui, que diriez-vous d'une comparaison de chaînes?

NSString *strLocation = [[plistDict objectForKey:@"airplaneMode"] lowercaseString]; 
if ([strLocation isEqualToString:@"on"]) 
{ 
    return TRUE; 
} 
return FALSE; 
+0

Avec le risque d'être pendentif, même si TRUE/FALSE sont définis, les valeurs canoniques des types BOOL sont YES/NO. –

0

Yo veut probablement utiliser quelque chose comme ceci pour stocker une valeur booléenne sur un dictionnaire/plist:

[myDictionary setObject:[NSNumber numberWithBool:YES]] 

Bien que vous utiliseriez OUI ou NON en fonction de la valeur de l'entier que vous voulez ranger.

0

Ou vous pouvez faire une ligne instruction if comme ceci:

BOOL location = ([[plistDict objectForKey:@"airplaneMode"] isEqualToString:@"On"]) ? YES : NO;
+0

'YES' et' NO' sont les identifiants communs associés au type 'BOOL'. – dreamlax

+0

VRAI, FAUX, 0 et 1 fonctionnent aussi, et certaines personnes le comprennent mieux. – MishieMoo