저장된 NSUserDefault를 쉽게 확인하는 방법은?

사용자 기본값`에 저장된 내용을 직접 확인할 수 있는 방법이 있나요? 내 데이터가 올바르게 저장되었는지 확인하고 싶습니다.

질문에 대한 의견 (1)

현재 로그 산우저드포츠 모두 인쇄할 수 있습니다.

그냥 키:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

키와 값입니다.

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
해설 (3)
해결책

로 이동하면 시뮬레이터에서 앱의 pList 파일을 찾을 수 있습니다:

/사용자/사용자 이름/라이브러리/애플리케이션 지원/iPhone 시뮬레이터/<Sim 버전>/애플리케이션으로 이동합니다.

이 디렉토리에는 GUID로 명명된 디렉터리가 많이 있습니다. 몇 개의 앱에서 작업하는 경우 몇 개가 있을 것입니다. 따라서 앱 바이너리를 찾아야 합니다:

find . -name foo.app
./1BAB4C83-8E7E-4671-AC36-6043F8A9BFA7/foo.app

그런 다음 GUID 디렉터리의 라이브러리/환경설정 디렉토리로 이동합니다. 그래서:

cd 1BAB4C83-8E7E-4671-AC35-6043F8A9BFA7/Library/Preferences

다음과 같은 파일을 찾을 수 있습니다:

.foo.pList

이 파일을 목록 편집기에서 열고 지속되는 값을 마음껏 찾아보세요.

해설 (11)

우리가 사용할 수 있는 만큼 &lt h1&gt following:-&lt /h1>;;;

스위프트는 3.x &amp h1&gt <;; 4.x&lt /h1>;

모든 키 &amp 가져오는 h3&gt <;; values:&lt /h3>; (키, 가치) 에 대한 우저드포츠리스탄다르.디스티오나리레프레센테이션 () { 보기인쇄 (\ (키) =\ (가치) \n&quot ";) }

&lt h3&gt 검색을 위한 사전 나타내줍니다 전체 사용자 defaults:&lt /h3>;;;

print(Array(UserDefaults.standard.dictionaryRepresentation()))

&lt h3&gt /h3>;; 를 검색하는 keys:&lt. 이후 키는 써줬지 배열입니다 덤프합니다 사용하여 // 덤프하지 (어레이입니다 (우저드포츠리스탄다르.디스티오나리레프레센테이션 스키스 ()))

&lt h3&gt /h3>;; 를 검색하는 values:&lt. 그러나 여기에도 우리가 덤프합니다 반환되므로 전체 상속 계층 구조를 사용할 수 있는 각 요소의 값을 어레이입니다. ) 을 사용할 경우, 다른 객체에 대한 자세한 정보가 필요합니다 덤프합니다 박으래도 함께 일반 인쇄 발표했다.

// dump(Array(UserDefaults.standard.dictionaryRepresentation().values))
print(Array(UserDefaults.standard.dictionaryRepresentation().values))

스위프트는 2.x&lt /h1&gt h1&gt <;;;

&lt h3&gt 검색을 위한 사전 나타내줍니다 전체 사용자 defaults:&lt /h3>;;;

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation())

&lt h3&gt /h3>;; 를 검색하는 keys:&lt.

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array)

&lt h3&gt /h3>;; 를 검색하는 values:&lt.

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().values.array)
해설 (0)

배열의 각 키에 대해 반환되는 값을 확인할 수 있습니다.

[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]
해설 (1)

가끔 내 위치를 사용하여 파일을 실행할 때 다음 스니핏 인쇄하려면 아웃해야 산우저드포츠 시뮬레이터

&lt pre>;

  • 경로 = 산해치파스포드리스토리징도맹 (누자이 산리브라이드리스토리, 산우저도맹마스크, 예). 산슬링 * 폴더 = [삼중평균 로비치아틴데스 0]; 산로그 (@&quot 그러하매 너희의 산우저드포츠 이 폴더에 저장되어 있습니다. %@/Preferences", 폴더). &lt /pre>;

이 기본 설정 폴더 경로를 익올때

&gt 그러하매 너희의 산우저드포츠 이 폴더에 저장되어 있습니다. 아이폰 Simulator/User/Applications/BC5056A0-F46B-4AF1-A6DC-3A7DAB984960/Library/Preferences /users/castle/library/application 지원 /

기본설정에서 폴더와 파일이 있는 너회의 산우저드포츠 따라 release. 접두어입니다 및 응용 프로그램 이름 (예:

dk.castleandersen.dreamteam.grid.plist

사실이라면 실제 디바이스입니다 대한 동일한 것으로 기대한다.

해설 (1)

4.0 의 스위프트

//func dictionaryRepresentation() -> [String : AnyObject]

때문에 산우저드포츠리스탄다르우저드포츠 () 의 딕티오나리레프레센테이션 되돌려줍니다 [구체화하십시오: 니노비치]

우리는 그것을 감추어 산디스티오나리 를 ''. It & # 39, & # 39 () 에 의해 다음 괄호 안에 있다. 호출할 수 있게 리앨키스 또는 리앨발 주 산디스티오나리 있는 것과 같이

 print((UserDefaults.standard.dictionaryRepresentation() as NSDictionary).allKeys)
해설 (0)

아래 코드를 사용합니다.

NSLog(@"NSUserDefault: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
해설 (2)

Xcode 용 7

    • 스탠다르데포츠 산우저드포츠 여기에 저장됩니다.

'/ Users / / / {}} {사용자 코레시무스 플라토르 디바이스에는 개발자 / / Library / / data / / Data / {}' (uuid application/ 컨테이너입니다 uuid

  • 에 대한 다양한 산우저드포츠 / app 그룹 * 여기에 저장됩니다.

'/ Users / / / {}} {사용자 코레시무스 플라토르 디바이스에는 개발자 / / Library / / / data / / / {} / Library/Preferences/ UUID 컨테이너입니다 공유됨 마카베그룹 GROUP_NAME} {UUID 지프리스트'

난 요즘 견하여 uuid 찾을 수 있으며, 통증 때문에 (https://github.com/scinfu/NCSimulatorPlugin) 는 모든 것을 사용하는 것이 좋습니다. 네 시뮬레이터 app 디렉터리용 쉽게 접근할 수 있습니다.

해설 (0)

이후, 파일 이름은 ',' app-bundle-identifier&gt 지프리스트 &lt 프리스트 쉽게 사용할 수 있습니다 '명령' 찾기 경로를 찾을 수 있다. 하지만 매우 오래 걸릴 것 "이라고 검색하면 것입니다그때에 컴퓨터, 그러니 ~ / library / 개발자 / 코레시무스 플라토르 범위, like '좋은 선택' 을 xcode 6.

예:

groupx ~ / Library / 개발자 / 코레시무스 플라토르 타입 f - 이름 코맥와섬.app. 프리스트 '-'

이 같은 일이 출력됩니다.

"'/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 "'

그리고 여기서 '오픈' 명령을 사용할 수 있습니다. ITerm2 사용하는 경우, 또는 그냥 command 의 경로를 풀어보렴

해설 (0)

, OS X 응용 프로그램을 위해 찾는 대신 application& # 39 의 파일을 사용할 수 있다 '' 설정값으로 프리스트 설정값으로 간단해진다는 명령줄이 유틸리티에는.

&gt. 이름을 &gt. &gt. mac OS X 시스템 사용자 기본값 액세스하려면 설정값으로 - &gt. &gt. 시놉시스 (줄거리) &gt. &gt. 설정값으로 [- 커렌서스트 - 호스트입니다 hostname] 읽기 [도메인임 [핵심]] &gt. &gt. [- 커렌서스트 - 호스트입니다 hostname] 읽기 유형 설정값으로 다음도메인 키 &gt. &gt. {& # 39 설정값으로 [- 커렌서스트 - 호스트입니다 hostname] 쓰기 도메인임 plist& # 39;; # 39, & # 39, value& 키 } &gt. &gt. [- 커렌서스트 - 호스트입니다 hostname] 설정값으로 old_key new_key 도메인 이름 바꾸기 &gt. &gt. [- 커렌서스트 - 호스트입니다 hostname] 삭제하시겠습니까 설정값으로 [도메인 [핵심]] &gt. &gt. [- 커렌서스트 - 호스트입니다 hostname]} {도메인과의 groupx 말을해야합니다 도움말에서는 설정값으로 &gt. &gt. 설명 &gt. &gt. '설정값으로' 를 사용하면 읽기, 쓰기 및 삭제입니다 Mac OS X 에서 사용자 기본값 명령줄이 쉘입니다. Mac &gt. OS X 응용 프로그램이 사용하는 기본 시스템 및 기타 다른 사용자의 취향과 레코드 &gt. 정보를 제공하는 응용 프로그램을 실행할 때 유지돼야 한다 (기본 글꼴을 등 새로운 aren& # 39, t &gt. 문서 또는 위치 정보 패널). 이 정보를 통해 많은 액세스됩니다 애플리 &gt. # 39 의 cation& 기본설정에는 패널, 그 중에는 이 같은 입장은 isn& # 39, t, 정보 패널. 수 있습니다. &gt. 이 정보를 볼 '와' 설정값으로

예:

$ defaults read com.apple.Safari
{
    AutoplayPolicyWhitelistConfigurationUpdateDate = "2018-08-24 17:33:48 +0000";
    AutoplayQuirksWhitelistConfigurationUpdateDate = "2018-08-24 17:33:48 +0000";
    DefaultBrowserPromptingState2 = 4;
    ...
해설 (0)

내가 이 방법을 구축됨 Morion& # 39 의 제안에 따라 보다 나은 프레젠테이션입니다. ' [자체 로갈우저드포츠]' 호출하여 사용한다.

- (void) logAllUserDefaults
{
    NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
    NSArray *values = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allValues];
    for (int i = 0; i < keys.count; i++) {
        NSLog(@"%@: %@", [keys objectAtIndex:i], [values objectAtIndex:i]);
    }
}
해설 (3)
  • Look for Mac app 불렀으매 SimPholders2. 이 모든 메뉴 표시줄, 목숨을 열거합니다 you& 시뮬레이터, ve 사용된 후 각 # 39 fs@snapa 어플리케이션이 하나를 선택하고 새로운 파인더 창을 열어 app& 이미 확보하십시오. # 39 의 디렉터리입니다. 이로 인해 슈퍼 쉽게 찾을 수 있도록 앱 및 모든 it& # 39 의 디렉터리용. # 39 의 엄청난 시간 절약 it& a * (저는 쉽게 기증된 저자는).
해설 (0)

다음과 같이 설정한 각 값을 NSLog할 수 있습니다:

NSLog(@"%@",[[NSUserDefaults standardDefaults] stringForKey:@"WhateverTheKeyYouSet"]);
해설 (0)

난 계속 데스크탑 simulator& # 39 의 폴더에 바로 가기인 on my apps, 그것은 계속 예:

/Users/gary/Library/Application Support/iPhone Simulator/User/Applications

최근 날짜, 그리고 가장 최근의 앱 폴더) 에 의해 정렬할지 그냥 보고 library / preferences 에서 파일을 프리스트 편집기에는.

해설 (0)

시뮬레이터 앱

그 이름을 , app 이 셸 스크립트 검색하겠습니다 번들화 id 프리스트 포함된 파일 및 폴더 열기 입수합니다.

#!/bin/bash

appname="$1"
[ -z $appname ] && read -p "Application name : " appname

apppath=$(find ~/Library/Developer/CoreSimulator/Devices/ -name "$appname.app" -print -quit)
if [[ ! -z $apppath ]]; then
    appbundle=$(osascript -e "id of app \"$apppath\"")
    find ~/Library/Developer/CoreSimulator/Devices/ -name "$appbundle.plist" -exec bash -c 'open "$(dirname "$1")"' -- {} \;
else
    echo "No application found by that name: $appname.app"
fi

확장 스크립트 버전

  • ',' 내 App&quot Usage:* 아이폰 앱 폴더 &quot.

#!/bin/bash
appname="$1"
[ -z "$appname" ] && read -p "Application name : " appname

apppath=$(find ~/Library/Developer/CoreSimulator/Devices -name "$appname.app" -print -quit)
if [[ ! -z $apppath ]]; then
    appbundle=$(osascript -e "id of app \"$apppath\"")
    echo "Found app $appname (${appbundle})"
    echo -e "\033[1;30m$apppath\033[0m"
    plists=$(find ~/Library/Developer/CoreSimulator/Devices -name "$appbundle.plist" -print -quit)
    count=$(echo plists | wc -l | sed "s/ //g")
    if [[ $count -eq 1 ]] && [[ -f "$plists" ]]; then
        echo -e "\033[1;32mUserDefaults found for $appname\033[0m"
        echo -e "\033[1;30m$plists\033[0m"
        plistutil -i "$plists"
        /usr/bin/open $(dirname "$plists")
    elif [[ ${#plists} -gt 0 ]]; then
        echo -e "\033[1;32mUserDefaults found for $appname\033[0m"
        i=1
        while read line; do
            echo "[${i}] ${line} "
            i=$((i+1))
        done < 
해설 (0)

2.2 의 스위프트

let path = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)
let folder = path[0]
NSLog("Your NSUserDefaults are stored in this folder: \(folder)/Preferences")

39 의 파일 폴더 위치에서 인쇄됩니다 NSUserDefaults& 프리스트 Xcode 디버그입니다 콘솔이군요. 복사합니다를 삼중평균 구체화하십시오. Open your 파인더, Go 를 선택하여 검색하기를 폴더에 메뉴 항목을 붙여넣습니다 삼중평균 구체화하십시오. 프리스트 를 더블 절실해졌습니다. Xcode 에 편집기에는 내용을 볼 수 있습니다.

전용 작업하십시오 시뮬레이터

감사합니다 @Niels 성

해설 (1)

스위프트는 3

print(UserDefaults.standard.dictionaryRepresentation())
해설 (0)

Mac os 용 애플리케이션을 Gnu. orghttp://www.: /Users/ 사용자} {}, {}, {/ com / Library / 컨테이너입니다 너회의 앱 / Data / Library / 회사의 기본 open your app& # 39 에 있는 프리스트 Xcode.

해설 (0)

야, 내가 읽은 후 question& # 39 의 수락됨 종합해 스크립트입니다 파일을 저장할 수 있는 프리스트 를 사용하는 이 단순한 열었든 시뮬레이터 산우저드포츠 'iOS' 기본설정에는 떨어졌으며, 특정 간주합니다 설정 (부응합니다 내거냐 완벽하게), 다른 일을 시작할 수 있습니다.

$ cat open-prefs-plist.sh
#!/bin/sh

# The project name based on the workspace path, e.g. "MyProject" from "./MyProject.xcworkspace"
WORKSPACE_NAME=$(echo `find . -name *.xcworkspace -type d -exec basename {} \;` | cut -d'.' -f1)
SIMULATOR_PATH="$HOME/Library/Application Support/iPhone Simulator"
# The App's bundle ID taken from its info plist, e.g "com.myproject" from "./MyProject/MyProject-Info.plist"
BUNDLE_ID=`/usr/libexec/PlistBuddy -c Print:CFBundleIdentifier $WORKSPACE_NAME/$WORKSPACE_NAME"-Info.plist"`
# Open all plist files in the simulator path that match the app's bundle ID 
# normally one per iOS version
find "$SIMULATOR_PATH" -name $BUNDLE_ID".plist" -type f -print0 \
    | while IFS= read -r -d '' PLIST; do
    echo $PLIST
    open "$PLIST"
done

예 배치:

$ ls -1
MyProject
MyProject Tests
MyProject.xcodeproj
MyProject.xcworkspace
Podfile
open-prefs-plist.sh
해설 (2)

이 전체 경로를 얻을 수 있는 사용자 수 있는 사용자 설정, 그리고 기타 여러 데이터 캐시

'보기인쇄 (산해치파스포드리스토리징도맹 (오도쿠망디레스토리, 지우저도맹마스크, true)'

해설 (0)