2014-10-12 3 views
0

개념적 질문 - NSUserDefaults에 액세스 할 때 항상 standardUserDefaults API를 사용해야합니까?iOS NSUserDefaults standardUserDefaults

다양한 설정/플래그/NSCoding 정보를 내 앱에 저장하고 있습니다. 그러나이 중 일부의 경우에는 standardUserDefaults을 괴롭히는 것이 자연스럽지 않습니다. 내가 저장하려는 특정 유형의 정보를 관리하기위한 새로운 NSUserDefaults 엔티티를 잠재적으로 만들 수 있는지 궁금합니다.

그냥 예를 들어 - NSURLSessionDownloadTask 배경을 사용 중이고 다운로드 작업이 시작된 실제 사용자 downloadTask 사이의 관계 데이터를 저장하고 싶습니다. 해당 데이터를 NSUserDefaults에 저장합니다. 나는 이것 (그리고 다른 것들)을 NSUserDefaults에 접근하는 것이 갈 길이라는 것을 확신하지 못한다!

[아마도 내가이 권리를 설명하지 않았을 수 있습니다. 죄송합니다!]

답변

-1

필자가 알고 있듯이 데이터 분류의 특정 목적을 위해 새로운 사용자 기본 파일을 만들 필요가 없습니다.

NSUserDefaults는 모든 시스템 파일만큼 클 수 있으므로 그에 따라 데이터 덤프를 조정할 수 있습니다. 새로운 기본값이 필요한 경우 Catfish_Man의 대답을 참조하십시오. 또한 특정 앱 그룹을 다루는 경우에 특히 유용합니다.

1

NSUserDefaults는 귀하가 설명한 것에 대한 올바른 해결책이 아닙니다.

NSUserDefaults는 실제로 매우 좁고 특별한 목적으로 사용됩니다. 주로 사용자와 상호 작용하고 사용자가 선호도를 설정하고 해당 기본 설정을 유지하도록합니다.

일반적인 유형의 저장 장치로 사용할 수 없습니다.

원하는대로 항상 일반적인 NSDictionary 등을 사용할 수 있습니다. 여러 위치에서 액세스 할 수 있도록하려면 응용 프로그램 위임자에 남겨 두거나 싱글 톤 클래스를 만듭니다. 실행 중에 지속되도록하려면 SQLite와 같은 것을 사용하십시오.

+0

의견을 보내 주셔서 감사합니다. 세션 전체에 간단한 플래그를 저장하려면 SQLite를 사용해야합니다. 그건 아주 미친 짓이야. – p0lAris

+0

모두 당신이 가지고있는 것에 달려 있습니다. 당신은 상황을 가장 잘 압니다. 당신은 결정할 가장 좋은 사람입니다. –

+0

글쎄 그냥 바로 위에 문제를 말한 내가 위에서 설명한 것입니다. 서버에서 프로필 사진을 요청한 모든 사용자의 사용자 이름을 저장합니다. – p0lAris

1

할 수있는 한 가지 방법은 [[NSUserDefaults alloc] initWithSuiteName:]을 사용하여 별도의 NSUserDefaults 저장소를 만드는 것입니다.

그냥 [[NSUserDefaults alloc] init] 일 때 standardUserDefaults과 같은 저장 용량을 갖게됩니다.

관련 문제