Xamarin.iOS에서 사용자 기본값 사용

이 문서에서는 NSUserDefault를 사용하여 Xamarin.iOS 앱 또는 확장에 기본 설정을 저장하는 방법을 설명합니다.

이 클래스는 NSUserDefaults iOS 앱 및 확장이 시스템 전체 기본값 시스템과 프로그래밍 방식으로 상호 작용하는 방법을 제공합니다. 사용자는 기본값 시스템을 사용하여 앱의 동작 또는 스타일을 앱 디자인에 따라 기본 설정에 맞게 구성할 수 있습니다. 예를 들어 메트릭 및 임페리얼 측정값으로 데이터를 표시하거나 지정된 UI 테마를 선택합니다.

앱 그룹과 함께 사용하는 경우 지정된 그룹 NSUserDefaults 내에서 앱(또는 확장) 간에 통신하는 방법도 제공합니다.

사용자 기본값 정보

위에서 설명한 대로 사용자 기본값(NSUserDefaults)을 앱(또는 확장명)에 추가하고 최종 사용자가 런타임에 앱의 모양이나 작업을 조정하도록 수정할 수 있는 구성 가능한 옵션을 제공하는 데 사용할 수 있습니다.

앱이 처음 실행 NSUserDefaults 되면 앱의 사용자 기본 데이터베이스에서 키와 값을 읽고 메모리에 캐시하여 값이 필요할 때마다 데이터베이스를 열고 읽지 않도록 합니다.

Important

Apple은 더 이상 개발자가 메모리 내 캐시를 데이터베이스와 직접 동기화하기 위해 메서드를 호출 Synchronize 하지 않는 것이 좋습니다. 대신 사용자의 기본 데이터베이스와 동기화된 메모리 내 캐시를 유지하기 위해 주기적으로 자동으로 호출됩니다.

클래스에는 NSUserDefaults 문자열, 정수, float, 부울 및 URL과 같은 일반적인 데이터 형식에 대한 기본 설정 값을 읽고 쓰기 위한 몇 가지 편리한 메서드가 포함되어 있습니다. 다른 유형의 데이터를 사용하여 NSData보관한 다음 사용자 기본값 데이터베이스에서 읽거나 쓸 수 있습니다. 자세한 내용은 Apple의 기본 설정 및 설정 프로그래밍 가이드를 참조하세요.

공유 NSUserDefaults 인스턴스 액세스

공유 사용자 기본값 인스턴스는 디바이스의 현재 사용자에 대한 사용자 기본값에 대한 액세스를 제공합니다. Shared Defaults 개체가 없으면 처음으로 액세스하고 다음 정보를 사용하여 초기화할 때 생성됩니다.

  • NSArgumentDomain 현재 앱에서 구문 분석된 기본값으로 구성됩니다.
  • 앱의 번들 식별자는 기본.
  • NSGlobalDomain 모든 앱에서 공유하는 기본값으로 구성됩니다.
  • 각 사용자의 기본 설정 언어에 대한 별도의 do기본.
  • NSRegistrationDomain 검색이 항상 성공하도록 앱에서 수정할 수 있는 임시 기본값 집합이 있는 경우

공유 사용자 기본 인스턴스에 액세스하려면 다음 코드를 사용합니다.

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;

앱 그룹 NSUserDefaults 인스턴스 액세스

위에서 설명한 대로 앱 그룹을 사용하여 지정된 그룹 NSUserDefaults 내에서 앱(또는 확장) 간에 통신하는 데 사용할 수 있습니다. 먼저 iOS 개발자 센터 인증서, 식별자 및 프로필 섹션에서 앱 그룹 및 필요한 앱 ID가 올바르게 구성되고 개발 환경에 설치되었는지 확인해야 합니다.

다음으로, 앱 및/또는 확장 프로젝트에는 위에서 만든 유효한 앱 ID 중 하나가 있어야 하며 Entitlements.plist , 앱 그룹을 사용하도록 설정하고 지정한 상태로 파일을 앱 번들에 포함해야 합니다.

이 모든 기능을 사용하면 다음 코드를 사용하여 공유 앱 그룹 사용자 기본값에 액세스할 수 있습니다.

// Get App Group User Defaults
var plist = new NSUserDefaults ("group.com.xamarin.todaysharing", NSUserDefaultsType.SuiteName);

액세스하려는 인증서, 식별자 및 프로필에서 만든 앱 그룹은 어디에 group.com.xamarin.todaysharing 있나요? 자세한 내용은 앱 그룹 기능 설명서를 참조하세요.

기본값 읽기

원하는 사용자 기본 데이터베이스에 액세스한 후에는 읽는 데이터 형식에 따라 키/값 쌍 및 여러 편의 메서드를 사용하여 기본값에서 값을 읽을 수 있습니다.

  • ArrayForKey - 지정된 키 값의 NSObjects 배열을 반환합니다.
  • BoolForKey - 지정된 키에 대한 부울 값을 반환합니다.
  • DataForKey - 지정된 키에 대한 개체를 반환 NSData 합니다.
  • DictionaryForKey - 지정된 키에 대한 값을 반환 NSDictionary 합니다.
  • DoubleForKey - 지정된 키에 대한 double 값을 반환합니다.
  • FloatForKey - 지정된 키에 대한 부동 소수 자릿수 값을 반환합니다.
  • IntForKey - 지정된 키의 정수 값을 반환합니다.
  • StringArrayForKey - 지정된 키 값에서 개체의 String 배열을 반환합니다.
  • StringForKey - 지정된 키에 대한 문자열 값을 반환합니다.
  • URLForKey - 지정된 키의 값을 반환 NSUrl 합니다.

예를 들어 다음 코드는 사용자 기본값에서 부울 값을 읽습니다.

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...

// Get value
var useHeader = plist.BoolForKey("UseHeader");

기본값 작성

위의 값을 읽는 것과 마찬가지로 원하는 사용자 기본 데이터베이스에 액세스한 후에는 작성되는 데이터 형식에 따라 키/값 쌍 및 몇 가지 편리한 메서드를 사용하여 기본값에 값을 쓸 수 있습니다.

  • SetBool - 지정된 부울 값을 지정된 키에 씁니다.
  • SetDouble - 지정된 키에 지정된 double 값을 씁니다.
  • SetFloat - 지정된 부동 소수 자릿수 값을 지정된 키에 씁니다.
  • SetString - 지정된 문자열 값을 지정된 키에 씁니다.
  • SetURL - 지정된 URL(NSUrl) 값을 지정된 키에 씁니다.

예를 들어 다음 코드는 사용자 기본값에 부울 값을 씁니다.

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...

// Save value
plist.SetBool(useHeader, "UseHeader");
...

Important

앱이 처음 실행 NSUserDefaults 되면 앱의 사용자 기본 데이터베이스에서 키와 값을 읽고 메모리에 캐시하여 값이 필요할 때마다 데이터베이스를 열고 읽지 않도록 합니다.

요약

이 문서에서는 클래스와 이 클래스를 사용하여 최종 사용자가 Xamarin.iOS 앱을 구성하는 데 사용할 수 있는 옵션 집합을 제공하는 방법을 설명 NSUserDefaults 했습니다. 또한 앱 그룹을 사용하여 확장과 부모 앱 간 또는 그룹의 앱 간에 통신하는 방법을 설명했습니다.