Existe uma maneira de ver o que foi salvo NSUserDefaults
diretamente? Gostaria de ver se meus dados foram salvos corretamente.
ios
objective-c
macos
nsuserdefaults
Ethan
fonte
fonte
Respostas:
Você pode encontrar o arquivo pList para o seu aplicativo no simulador se for para:
/ users / seu nome de usuário / Library / Application Support / iPhone Simulator / <Sim Version> / Applications
Este diretório possui vários diretórios denominados GUID. Se você estiver trabalhando em alguns aplicativos, haverá alguns deles. Então, você precisa encontrar o seu aplicativo binário:
Em seguida, vá para o diretório Library / Preferences no diretório GUID. Assim:
Você deve encontrar um arquivo parecido com:
Abra isso no editor pList e procure valores persistentes no conteúdo do seu coração.
fonte
NSUserDefaults
, eleNSUserDefaults
não será persistido em um arquivo .plist, mas sim gerenciado na memória: stackoverflow.com/questions/6193597/…Você pode imprimir todos os atuais NSUserDefaults no log:
Apenas teclas:
Chaves e valores:
fonte
No Swift, podemos usar o seguinte: -
Swift 3.x e 4.x
Para obter todas as chaves e valores:
Para recuperar a representação completa do dicionário dos padrões do usuário:
Para recuperar as chaves:
Para recuperar os valores:
Também podemos usar o dump aqui, mas isso retornará a hierarquia de herança completa de cada elemento na matriz de valores. Se forem necessárias mais informações sobre os objetos, use dump, ou siga a instrução de impressão normal.
Swift 2.x
Para recuperar a representação completa do dicionário dos padrões do usuário:
Para recuperar as chaves:
Para recuperar os valores:
fonte
Você pode verificar os valores para cada chave na matriz, retornados por
fonte
Às vezes, uso o seguinte trecho para imprimir o local do meu arquivo NSUserDefaults ao executar no simulador
Ele gera o caminho para a pasta de preferências
Seu arquivo NSUserDefaults está localizado na pasta de preferências e é nomeado de acordo com o seu prefixo e nome do aplicativo, por exemplo
Espero que o mesmo seja verdade para o dispositivo real.
fonte
Fácil, como o nome do arquivo plist é
<app-bundle-identifier>.plist
, você pode usar ofind
comando para encontrar seu caminho. Mas levará muito tempo se você pesquisar em todo o computador, portanto, é necessário escolher um bom escopo, como~/Library/Developer/CoreSimulator
para o Xcode 6.exemplo:
find ~/Library/Developer/CoreSimulator -type f -name com.awesome.app.plist
a saída será algo como isto ...
/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
E a partir daí você pode usar o
open
comando. Ou, se você usa o iTerm2 , basta clicar com o comando no caminho para abri-lo.fonte
No Swift 4.0
porque dictionaryRepresentation de NSUserDefaults.standardUserDefaults () retorna [String: AnyObject]
Nós o lançamos em um
NSDictionary
. Então, colocando-o entre parênteses '()' nos permitirá chamar .allKeys ou .allValues, como faria em qualquer NSDictionaryfonte
Use o código abaixo.
fonte
Para aplicativos OS X , em vez de encontrar o arquivo plist de padrões do aplicativo, é mais simples usar o
defaults
utilitário de linha de comando.Exemplo:
fonte
Para o Xcode 7
Os NSUserDefaults standardDefaults são armazenados aqui:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Data/Application/{UUID}
Os padrões NSUserD para um conjunto de aplicativos / suítes são armazenados aqui:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Shared/AppGroup/{UUID}/Library/Preferences/{GROUP_NAME}.plist
Eu recomendaria usar https://github.com/scinfu/NCSimulatorPlugin porque hoje em dia tudo está por trás dos UUIDs e é difícil encontrá-los. Permite fácil acesso aos diretórios de aplicativos do simulador.
fonte
Criei esse método com base na sugestão de Morion para uma melhor apresentação. Use chamando
[self logAllUserDefaults]
fonte
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] debugDescription]);
(Quase como na resposta mais votada acima).Procure o aplicativo para Mac chamado SimPholders2 . Ele fica na barra de menus, lista todos os simuladores que você usou e mostra cada um dos seus aplicativos. Selecione uma e você obterá uma nova janela do Finder, já aberta no diretório do aplicativo. Isso facilita a localização do aplicativo e de todos os diretórios. É uma enorme economia de tempo (e eu doei prontamente para o autor).
fonte
Simulator App
Esse script de shell pesquisa o nome do aplicativo, obtém o ID do pacote e abre pastas que contêm os arquivos Plist .
Versão de script estendida
Uso:
iphone-app-folder "My App"
Mac App
fonte
No Swift 2.2
imprimirá o local da pasta de arquivos do NSUserDefaults no console de depuração do Xcode. Copie a sequência do caminho. Abra o Finder, selecione Ir para a pasta no item de menu Ir, cole a sequência de caracteres do caminho. Clique duas vezes no arquivo plist. Você verá o conteúdo no seu editor do Xcode.
Trabalhar apenas no simulador
Obrigado @Niels Castle
fonte
Eu mantenho um atalho na minha área de trabalho na pasta do simulador onde ele mantém os aplicativos, ou seja:
Classificado pela data mais recente, basta ir para a pasta mais recente do aplicativo Library / Preferences e visualizar o arquivo no editor plist.
fonte
Swift 3
fonte
Para aplicativos MacOS,
acesse: /Users/{User}/Library/Containers/com.{your company}. {Seu aplicativo} / Dados / Biblioteca / Preferências e abra a lista de aplicativos com o Xcode.
fonte
Esse é o caminho inteiro em que os valores das chaves UserDefaults estarão em um arquivo plist. Siga e encontre o arquivo .plist do identificador de pacote de aplicativos.
Aqui "4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2" é o seu ID do dispositivo
e "56D7CE31-9A8B-4371-9B0F-9604E239423B0" é o seu ID do aplicativo
Normalmente, eu os obtenho classificando as pastas pela última data de modificação no Finder. E a pasta editada mais recente é meu ID do dispositivo e ID do aplicativo.
Aproveitar!
fonte
Você pode NSLog cada valor definido, como:
fonte
Depois de ler a resposta aceita desta pergunta, montei esse script simples que abre os arquivos plist usados pelo simulador iOS para armazenar as
NSUserDefaults
preferências e, embora assuma uma determinada configuração (se encaixa perfeitamente na minha), pode funcionar como ponto de partida para outros .Posicionamento de exemplo:
fonte
Você pode usar isso para obter o caminho completo das preferências do usuário, cache e muitos outros dados
print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))
fonte
Você pode imprimir o caminho para o diretório de preferências a partir do
application:didFinishLaunchingWithOptions:
retorno de chamada no AppDelegate:Então você pode olhar diretamente para o arquivo plist para ver o que está salvo lá.
fonte