2012-08-12 3 views
0

NSUserDefaults 클래스를 사용하면 응용 프로그램 또는 사용자 데이터와 관련된 설정 및 속성을 저장할 수 있습니다.iOS SDK : NSUserDefaults 작업

  1. (설정 및 속성) 저장됩니다

    지금은 견인 질문이? =>는 객체가 다음 아이폰 OS "디폴트 시스템" 으로 알려진에 저장됩니다 경우 : 아이폰 OS "기본적으로 시스템은"무엇

  2. 얼마나 저장된 상태로 유지됩니다?

답변

3

어디서? 그것은 당신이 개발하고있는 앱의 종류에 달려 있습니다. AppStore 응용 프로그램의 경우 설치된 응용 프로그램 폴더의 sandbox 폴더에있는 라이브러리/기본 설정 폴더에서보다 정확하게 지정하십시오. 설정이 포함 된 실제 파일은 PLIST (속성 목록) 파일이며 이름은 앱의 번들 식별자와 일치합니다. 모두

모든 :

(/var/mobile/Applications/XXXX-XXXX-XXXXXX-XXXXXXXX/MyApp.app/Library/Preferences/com.mycompany.bundleid.plist 

가 (여기서 XXXX 등이 UUID)입니다.

jailbroken 기기 용 앱을 만드는 경우 (예 :Cydia를 애플 리케이션), 그것은 이름이 번들 ID와 일치 다시 PLIST 파일, 수 있지만 그것은

/var/mobile/Library/Preferences/com.mycompany.bundleid.plist 

IOS는 기본적으로 시스템에 설치됩니다 재단 프레임 워크, 아이폰 OS 자체와 파일의 일부이다 설정 및 기본값을 관리, 저장 및 수정할 수있는 디렉토리가 있습니다.

얼마나 걸립니까? 다시 말하지만, 어떤 종류의 앱을 쓰느냐에 달려 있습니다. 일반 AppStore 앱의 경우 기본값은 파일에 대한 것으로 지정되지만 사용자가 앱을 삭제하지 않는 한 한 기본값으로 유지됩니다. 앱이 삭제되면 사용자가 기본으로 설정 한 전체 샌드 박스, 앱 번들 및 od 과정도 사라집니다. 영원히, 돌이킬 수 없게.

시스템 응용 프로그램의 디렉토리 (/ Applications)에있는 jailbroken 응용 프로그램을 개발하면 사용자 기본 설정 파일은 사용자가 패키지/응용 프로그램을 삭제하더라도/var/mobile/Library/Preferences에서 사용할 수 있습니다. APT (Cydia의 Backing Package Manager)는 패키지가 원래 포함하고 있던 파일만을 기록하므로 기본값 속성 목록 파일 (앱이 NSUserDefaults 클래스에 처음 액세스 할 때 생성됨)의 경우에는 해당되지 않습니다. 사용자 수동으로 파일을 삭제하거나 재고 펌웨어로 복원하면 사라질 것입니다.

+1

철저한 대답은 +1입니다. – jstr

1

답변 : 응용 프로그램의 샌드 박스에서

  1. . 어쨌든 직접 기본값에 액세스하지 않으므로 정확하게 중요하지 않습니다.

  2. 앱이 기기에있는 한. 앱을 삭제하면 샌드 박스도 삭제되므로 삭제되는 시점이됩니다. 앱을 업데이트하면 동일한 샌드 박스가 사용되므로 삭제되지 않습니다. 무엇 그것이 대해서는

, 나는 당신에게 documentation의 비트를 인용거야 :

NSUserDefaults 클래스는 기본적으로 시스템과 상호 작용하기위한 프로그래밍 인터페이스를 제공합니다. 기본 시스템을 사용하면 응용 프로그램이 사용자의 기본 설정에 맞게 동작을 사용자 정의 할 수 있습니다. 예를 들어 사용자가 응용 프로그램이 표시하는 측정 단위 나 문서가 자동 저장되는 빈도를 결정할 수 있습니다. 응용 프로그램은 사용자의 디폴트 데이터베이스에있는 매개 변수 세트에 값을 지정하여 이러한 기본 설정을 기록합니다. 매개 변수는 시작시 응용 프로그램의 기본 상태 또는 기본적으로 작동하는 방식을 결정하는 데 일반적으로 사용되므로 기본값으로 참조됩니다.

런타임에 NSUserDefaults 개체를 사용하여 응용 프로그램이 사용자의 기본 데이터베이스에서 사용하는 기본값을 읽습니다. NSUserDefaults는 기본값을 필요로 할 때마다 사용자의 기본 데이터베이스를 열 필요가 없도록 정보를 캐시합니다. 정기적 인 간격으로 자동으로 호출되는 synchronize 메소드는 메모리의 캐시를 사용자의 기본 데이터베이스와 동기화 된 상태로 유지합니다.