9
votes

sauvegarder bool dans nsuserdefault

Lorsque mon application commence la musique joue:

-(IBAction)check {


if (isquiet == NO) {

    [theAudio stop];

    isquiet = YES;

     defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:YES forKey:@"stringKey"];


}

else {

    [self playBgMusic];

    isquiet = NO;

    defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:NO forKey:@"stringKey"]; } }


0 commentaires

4 Réponses :


6
votes

Boîte de votre valeur Bool sur NSNumber Object et ajoutez-la à Nsuserdefault: xxx

plus tard, vous pourrez récupérer cette valeur en tant que plaine bool à l'aide de -boolforkey: Fonction dans nsuserdefault


1 commentaires

Il y a aussi une fonction Setbool SE si l'enveloppant dans un nombre de nsnumber est inutile :)



1
votes

Pour enregistrer: xxx pré>

Lorsque vous le lisez en arrière, lisez-le sous forme de nsnumber, puis faites: P>

BOOL savedIsQuiet = [theNumberYouSaved boolValue];


0 commentaires

38
votes

Pas besoin de l'envelopper dans un nombre NSNumber, il existe des méthodes de commodité pour cela:

Pour définir un BOOL, utilisez: P>

-(IBAction)check 
{
    if (isQuiet)
    {
        // Play music
        // Change the button to indicate it is playing...
    } else 
    {
        // Stop music
        // Change the button to indicate it has stopped...
    }
    // Set your isQuiet to be the opposite of what it was when the button was clicked
    isQuiet = !isQuiet;
}


5 commentaires

sauvegarde des travaux mais maintenant il y a toujours un problème, j'ai édité ma question


C'est une question différente mais j'ai édité ma réponse, voyez si cela aide. Il ne semble pas que vous ayez besoin d'utiliser NsuserDefaults du tout.


J'ai expliqué la nécessité dans ma question avant que je l'ai modifiée, désolé de l'avoir supprimé. J'ai des fichiers de visiteurs différents. Pour l'expulsion, l'application commence, la musique joue et je vais à une autre vue de la vue et à nouveau. Dans ce cas, le bool n'est toujours pas non. Donc, lorsque j'appuie sur le bouton à l'heure actuelle, la musique commencerait une seconde fois et des chevauchements. vous comprenez?


Merci, j'ai marqué votre réponse comme raison et j'ai posé une autre question ici: Stackoverflow.com/questions/5588209/bool-saving -Problème que vous pourriez peut-être y jeter un coup d'œil, serait bien, merci.


Pour accepter les modifications, vous devez utiliser [userdefault synchroniser]; après la définition de la valeur



1
votes

Swift: strong>

Pour enregistrer BOOL: P>

let boolValue = UserDefaults.standard.bool(forKey: "storageKey")


0 commentaires