2012-04-10 4 views
3

NSUserDefaults를 매우 광범위하게 사용하고 있습니다. 나는 NSUserDefaults 내부에 사용자에 관한 많은 정보를 저장하고 나중에 다른보기에서 사용하고 있습니다.NSUserDefaults를 너무 많이 사용 중입니다.

제 질문은 이것이 잘못된 접근입니까? 또는 이것이 AppStore로 전송할 때 문제가 될 수 있습니까?

는 ..

+0

클라우드가 마음에 드시면 iCloud에 데이터를로드 해보십시오. 또한 데이터를 백업하므로 데이터 손실로 고생 할 필요가 없습니다. – Paul

답변

3

예 그것은 잘못된 접근입니다,하지만 난 당신이 앱 스토어에 보낼 때 당신에게 문제가 될 수 있다고 생각하지 않습니다 주셔서 감사합니다.

아마도 구성 파일을 추가하고이를 관리하거나 프로젝트의 핵심 데이터를 사용하여 프로젝트를 아는보다 정확한 대답을 얻을 수 있습니다.

감사합니다. 사용 NSUserDefaults

에만 구성을 저장하기 위해 NSUserDefaults를 사용하고자는, 사용자에게 기본이 될 것이다 때

EDIT 예를 들어 당신의 배경에 대한 사용자 좋아하는 색깔처럼, 더 나은 설명을 추가 할 수 있습니다.

NSUserDefaults, 암호, 임시 정보에 저장하고 싶지 않습니다. 게임을하고 있다면 순위를 저장하지 않을 것입니다. apple doc

NSUserDefaults 클래스에서

는 기본적으로 시스템과 상호 작용 에 대한 프로그래밍 인터페이스를 제공합니다. 기본 시스템을 사용하면 응용 프로그램이 사용자의 기본 설정과 일치하도록 동작을 사용자 정의 할 수 있습니다. 예를 들어, 사용자가 응용 프로그램이 표시하는 단위가 인 단위 또는 문서가 얼마나 자주 자동으로 저장되는지 확인할 수 있습니다. 응용 프로그램은 값을 사용자의 디폴트 데이터베이스에있는 매개 변수 세트에 할당하여 이러한 기본 설정을 기록합니다. 매개 변수는 기본값으로 사용됩니다. 은 시작시 응용 프로그램의 기본 상태 또는 기본적으로 의 작동 방식을 결정하는 데 주로 사용되기 때문에 기본값이라고합니다.

4

NSUserDefaults에 저장할 수있는 정보의 양과 정도에 대한 엄격한 규정은 없습니다 (단, 보안 데이터를 저장하면 안 됨). NSUserDefaults를 충돌을 일으킬 정도로 악용하지 않는 한 확실히 앱 스토어에서 거부 당하지는 않을 것입니다.

다른보기에서 사용하는 것에 대한 귀하의 진술에 혼란 스럽습니다. NSUserDefaults는 응용 프로그램의 객체간에 데이터를 전송하지 않고 세션에서 소량의 데이터를 지속시키기위한 것입니다. 후자의 경우이를 사용하는 경우 응용 프로그램 아키텍처를 다시 검토해야합니다.

1

userdefaults에 너무 많은 데이터를 저장하는 것은 바람직하지 않습니다. Istead에서는 데이터를 저장하기 위해 plist 또는 Core Data를 사용할 수 있습니다 (this is a good Core Data Tutorial). 또한 NSUSerDefaults는 & 개체를 삭제하기가 어렵 기 때문에 가능한 한 많은 사용자 이름 &을 저장하는 데 사용하려고합니다.

+0

튜토리얼 링크 +1 –

+0

아니요, 암호는 NSUserDefaults에 절대로 저장해서는 안되는 것입니다. 키 체인은 이유가 있습니다! –

1

당신은 앱 스토어에서 거절 당하지 않을 것이지만, 실제로는 좋은 연습이 아닙니다.. 결과 및 값을 저장하는 데 "코어 데이터"사용을 고려하십시오.그리고 viewControllers 사이에서 통신하기 위해 작은 NSNotificationsNSUserDefaults.

당신이 NSUserDefaults 주로 다른 VC의 사이의 통신을 위해, 내가 Delegates (메시지 전달 (또는) 콜백)

0

여기에 유용한 thread의를 사용하는 것이 좋습니다 것이 사용하는 경우. 기본적으로 프로젝트 폴더로 이동하여 pList 파일 크기를 확인하십시오.

5 개체는 거의 아무것도 : 나는 도움이되었다고

응답은 프로젝트 파일로 이동하여 PLIST 파일 크기를보고 있었다. 괜찮아 질거야! 내 컴퓨터에


, 내 사용자 기본값 데이터의 약 28 메가가있다. 그것은 전혀 문제를 일으키지 않습니다. 나는 성능을 추측 할 배열과 일반 프로그래밍 경험에서

는 요소의 크기에 따라 1000 년대에 들어갈 때 빠른 속도로 붕괴하기 시작합니다. 따라서 프로그램에서 두 가지 요소를 저장하는 데 문제가 없을 것입니다. 이것은 아마 내가 sqlite3 데이터베이스 또는 coredata를 사용하여, 아마 당신이 나보다 나중에보다는 오히려 시작했다.

관련 문제