Existe-t-il un moyen de voir ce qui a été enregistré NSUserDefaults
directement? Je voudrais voir si mes données ont été enregistrées correctement.
225
Existe-t-il un moyen de voir ce qui a été enregistré NSUserDefaults
directement? Je voudrais voir si mes données ont été enregistrées correctement.
Réponses:
Vous pouvez trouver le fichier pList pour votre application dans le simulateur si vous allez sur:
/ users / votre nom d'utilisateur / Library / Application Support / iPhone Simulator / <Sim Version> / Applications
Ce répertoire a un tas de répertoires nommés GUID. Si vous travaillez sur quelques applications, il y en aura quelques-unes. Vous devez donc trouver votre application binaire:
Allez ensuite dans le répertoire Library / Preferences du répertoire GUID. Alors:
Vous devriez trouver un fichier qui ressemble à:
Ouvrez-le dans l'éditeur pList et parcourez les valeurs persistantes au contenu de votre cœur.
la source
NSUserDefaults
, alorsNSUserDefaults
ils ne sont pas conservés dans un fichier .plist mais plutôt gérés en mémoire: stackoverflow.com/questions/6193597/…Vous pouvez imprimer tous les NSUserDefaults actuels dans le journal:
Juste les clés:
Clés et valeurs:
la source
Dans Swift, nous pouvons utiliser les éléments suivants: -
Swift 3.x et 4.x
Pour obtenir toutes les clés et valeurs:
Pour récupérer la représentation complète du dictionnaire des valeurs par défaut de l'utilisateur:
Pour récupérer les clés:
Pour récupérer les valeurs:
Nous pouvons également utiliser le vidage ici, mais cela renverra la hiérarchie d'héritage complète de chaque élément du tableau de valeurs. Si plus d'informations sur les objets sont nécessaires, utilisez dump, sinon continuez avec l'instruction print normale.
Swift 2.x
Pour récupérer la représentation complète du dictionnaire des valeurs par défaut de l'utilisateur:
Pour récupérer les clés:
Pour récupérer les valeurs:
la source
Vous pouvez vérifier les valeurs de chaque clé du tableau, renvoyées par
la source
J'utilise parfois l'extrait de code suivant pour imprimer l'emplacement de mon fichier NSUserDefaults lors de l'exécution dans le simulateur
Il donne le chemin vers le dossier des préférences
Votre fichier NSUserDefaults se trouve dans le dossier des préférences et est nommé en fonction de votre préfixe et du nom de l'application, par exemple
Je m'attends à ce qu'il en soit de même pour le périphérique réel.
la source
Facile, puisque le nom du fichier plist est
<app-bundle-identifier>.plist
, vous pouvez utiliser lafind
commande pour trouver son chemin. Mais cela prendra très longtemps si vous recherchez tout votre ordinateur, vous devez donc choisir une bonne portée, comme~/Library/Developer/CoreSimulator
pour Xcode 6.exemple:
find ~/Library/Developer/CoreSimulator -type f -name com.awesome.app.plist
la sortie sera quelque chose comme ça ...
/Users/hlung/Library/Developer/CoreSimulator/Devices/B61913F6-7D7C-4E45-AE2F-F45220A71823/data/Containers/Data/Application/E4CC51CF-11E5-4168-8A74-6BAE3B89998F/Library/Preferences/com.awesome.app.plist
Et à partir de là, vous pouvez utiliser la
open
commande. Ou si vous utilisez iTerm2 , il vous suffit de cliquer avec le bouton droit sur le chemin pour l'ouvrir.la source
Dans Swift 4.0
parce que dictionaryRepresentation de NSUserDefaults.standardUserDefaults () renvoie [String: AnyObject]
Nous l'avons jeté dans un
NSDictionary
. Ensuite, en l'entourant de parenthèses '()' nous permettra d'appeler .allKeys ou .allValues comme vous le feriez sur n'importe quel NSDictionaryla source
Utilisez le code ci-dessous.
la source
Pour les applications OS X , au lieu de trouver le fichier plist par défaut de l'application, il est plus simple d'utiliser l'
defaults
utilitaire de ligne de commande.Exemple:
la source
Pour Xcode 7
NSUserDefaults standardDefaults sont stockés ici:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Data/Application/{UUID}
NSUserDefaults pour un groupe de suites / applications sont stockés ici:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Shared/AppGroup/{UUID}/Library/Preferences/{GROUP_NAME}.plist
Je recommanderais d'utiliser https://github.com/scinfu/NCSimulatorPlugin car de nos jours tout est derrière les UUID et sont difficiles à trouver. Il permet un accès facile à vos répertoires d'application de simulateur.
la source
J'ai construit cette méthode sur la base de la suggestion de Morion pour une meilleure présentation. Utilisez-le en appelant
[self logAllUserDefaults]
la source
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] debugDescription]);
(Presque comme dans la réponse la plus votée ci-dessus.)Recherchez l'application Mac appelée SimPholders2 . Il vit dans la barre de menus et répertorie tous les simulateurs que vous avez utilisés, puis affiche chacune de vos applications. Sélectionnez-en un et vous obtenez une nouvelle fenêtre du Finder, déjà ouverte dans le répertoire de l'application. Cela facilite la recherche de votre application et de tous ses répertoires. C'est un énorme gain de temps (et j'ai facilement fait un don à l'auteur).
la source
Simulator App
Ce script shell recherche le nom de l'application, obtient l' ID de l' ensemble et ouvre les dossiers contenant les fichiers Plist .
Version de script étendue
Usage:
iphone-app-folder "My App"
Mac App
la source
Dans Swift 2.2
affichera l'emplacement du dossier de fichiers plist de NSUserDefaults dans la console de débogage Xcode. Copiez la chaîne de chemin d'accès. Ouvrez votre Finder, sélectionnez Aller au dossier dans l'élément de menu Aller, Collez la chaîne de chemin. Double-cliquez sur le fichier plist. Vous verrez le contenu dans votre éditeur Xcode.
Ne fonctionne que dans Simulator
Merci @Niels Castle
la source
Je garde un raccourci sur mon bureau vers le dossier du simulateur où il conserve les applications, c'est-à-dire:
Trié par date la plus récente, accédez simplement au dossier d'application Bibliothèque / Préférences le plus récent et affichez le fichier dans l'éditeur de plist.
la source
Swift 3
la source
Pour les applications MacOS
Accédez à: /Users/{User}/Library/Containers/com.{your company}. {Your app} / Data / Library / Preferences et ouvrez la pList de votre application avec Xcode.
la source
Il s'agit du chemin complet où vos valeurs de clé UserDefaults seront dans un fichier plist. Suivez et recherchez le fichier .plist de votre identifiant de bundle d'application.
Voici "4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2" est votre ID de périphérique
et "56D7CE31-9A8B-4371-9B0F-9604E239423B0" est votre ID d'application
Je les obtiens normalement en triant les dossiers par date de dernière modification dans le Finder. Et le dossier modifié le plus récent est l'ID de mon appareil et l'ID de l'application.
Prendre plaisir!
la source
Vous pouvez NSLog chaque valeur que vous définissez, comme:
la source
Après avoir lu la réponse acceptée à cette question, j'ai rassemblé ce script simple qui ouvre les fichiers plist utilisés par le simulateur iOS pour stocker les
NSUserDefaults
préférences, et bien qu'il suppose une certaine configuration (s'adapte parfaitement à la mienne), il peut fonctionner comme point de départ pour d'autres .Exemple de placement:
la source
Vous pouvez l'utiliser pour obtenir le chemin complet des préférences utilisateur, du cache et de nombreuses autres données
print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))
la source
Vous pouvez imprimer le chemin du répertoire de préférences à partir du
application:didFinishLaunchingWithOptions:
rappel dans votre AppDelegate:Ensuite, vous pouvez regarder le fichier plist directement pour voir ce qui y est enregistré.
la source