2011-01-14 2 views
0

저는 지난 몇 달 동안 핵심 데이터를 좋아했으며 사용자 설정을 포함하여 앱에 데이터를 저장하는 데 사용했습니다. 그것은 잘 작동하지만 나는 미래의 업데이 트에 문제가 생길 까봐 두렵다.iPhone 앱 사용자 설정 - 권장 접근 방식은 무엇입니까?

내 앱에 환경 설정을 저장하는 3 가지 방법을 알고 있습니다. 1. 핵심 데이터. 2. NSUserDefaults. 3. 빌드 인 설정 구성 요소 사용.

이 방법의 장단점을 이해하는 것을 좋아합니다.

감사 샤니

+0

흠. 주제를 조금 벗어나지 만 핵심 데이터를 어디서 배웠는지 알 수 있습니까? 필자는 언제나 plist와 preferences가 충분하다고 생각했기 때문에 항상 핵심 데이터를 피했습니다 ... (그리고 SQL 쿼리를 수행 할 수 있기 때문에 장점이나 핵심 데이터를 알고 있습니다) –

+0

안녕. 나는 plists로 앱을 만들었고 핵심 데이터로 이동하면 내 인생이 훨씬 쉬워지고 내 앱에 대한 더 많은 옵션이 열렸다고 말해야한다. 개인적으로 사과 예제 프로젝트를 읽고 핵심 데이터가있는 간단한 앱을 실험하고 제작하여 배웠습니다.그것은 시간이 걸렸지 만 나는 아직도 배울 것이 많지만, 최선의 방법은 언젠가 당신이 그것을 얻을 때까지 시도하고 시도하는 것이라고 진정으로 믿습니다. 행운을 빕니다. – shannoga

답변

4

편집 주 : 내 이전 링크, Implementing Application Preferences이 끊어집니다. 이 회신의 나머지는 여전히 적용되어야합니다. 그러나 NSUserDefaults과 비슷한 (그러나 별개이지만) store data in iCloud도 사용할 수 있습니다. 당신은 애플의 설명서를 참조 할 수

: 당신이 원하는 그러나 About Preferences and Settings

첫째, 당신은 설정을 저장할 수 있습니다 : 그것은 단지 사용자 데이터입니다. NSUserDefaults와 Core Data 사이의 선택은 API 사이에서만 이루어지며, 이전은 사용자 기본 설정을 처리하도록 특별히 설계되었습니다. 하지만 (기술적으로) INI 파일을 사용할 수 있습니다. 그래서 그것을하기 위해 3 가지 이상의 방법이 있습니다.

둘째, NSUserDefaults와 "기본 설정 구성 요소"는 실제로 동일합니다. 설정 앱을 사용하면 해당 API로 앱에서 액세스하는 환경 설정이 NSUserDefaults에 계속 저장됩니다.

이 아닌 이유은 기본 제공 설정 앱을 사용하려고합니다. 사용자가 이러한 설정을 변경하는 것이 번거롭기 때문입니다. 사용자가 자주 변경하려는 설정이있는 경우 앱에서 음악을 켜거나 끄고 플레이어 이름을 변경하는 등의 작업을 할 수 있습니다. 또한 자신의 앱을 완벽하게 제어 할 수 있기 때문에 Apple이 Settings.app에서 제공하는 것보다 유연한 GUI를 사용할 수 있습니다.

하지만 설정이 저장되는 방식이 아니라 GUI의 문제입니다.

핵심 데이터 또는 NSUserDefaults를 사용하는 경우 ... 제가 말했듯이, 하나는 특별히 사용자 기본 설정 용이고 다른 하나는 행 기반 사용자 데이터 용으로 설계되었습니다. NSUserDefaults를 사용하면 기본 설정을 사용하고, 새 설정을 추가하고 내장 설정 시스템을 지원할 수 있습니다. 또한 매우 간단합니다. 속성 목록을로드하기 만하면됩니다. 한편, 핵심 데이터에는 전체 영구 저장소 및 관리 객체 컨텍스트 스택이 필요합니다.

요약 : 설정에 NSUserDefaults를 사용하고 설정을 변경해야하는 빈도와 특정 요구 사항에 따라 기본 설정 응용 프로그램과 자체 제어판이있는 것을 선택하십시오.

+0

안녕하세요. 먼저 고마워. 앱이 이미 핵심 데이터를 사용하고 있어도 NSUserDefaults를 사용하는 편이 더 낫다. 즉, 사용자 환경 설정을 위해 다른 엔티티 만 설정하면된다는 의미일까요? – shannoga

+0

예 그랬습니다! NSUserDefaults는 설정 작업 방식에 깔끔하게 연결되는 정말 간단한 시스템입니다. NSUserDefaults를 사용하면 설정을 가져 오는 것이 [[NSUserDefaults sharedUserDefaults] stringForKey : @ "kSettingsKey"]처럼 쉽습니다. - 코어 데이터에서 동일한 작업을 수행하는 경우 객체 컨텍스트와 병합하여 요청 및 영구 저장소를 가져와야합니다 ... – vicvicvic

+0

안녕하세요 vicvicvic, NSUserdefault API를 사용하지만 standardUserDefaults 객체를 사용하지 않는 방법이 있는지 알고 계십니까? 환경 설정을 내 응용 프로그램에 저장하여 응용 프로그램이 삭제 될 때 시스템의 설정을 유지하지 못하게하고 싶습니다. 그 이유는 책의 각 페이지마다 값을 저장하고 싶기 때문에 글로벌 시스템 환경 설정에 수천 가지 설정을 넣고 싶지 않기 때문입니다. – CedricSoubrie

관련 문제