모델을 나타 내기 위해 하위 클래스 인 NSObject
을 사용하여 iPhone 용 퀴즈 애플리케이션을 작성하고 있습니다. 런타임에 다양한 컨트롤러가 모델 클래스를 인스턴스화하고 디스크의 plist에서 읽은 데이터로 채 웁니다. 코코아에서 모델 객체의 계층 구조를 인스턴스화 할 때 메모리 풋 프린트를 줄이는 방법은 무엇입니까?
모델 클래스
은 객관식 퀴즈의 기본 계층 구조를 나타냅니다- 한 응용 프로그램은 많은 퀴즈
- 한 퀴즈가 많은 질문
- 한 질문이 많은 답변
있다 현재 QuizController
클래스가 Quiz
객체를로드하면 questions
NSArray
속성이 Question
인스턴스가 있고 해당 Question
인스턴스가 초기화 될 때마다 인스턴스 이름은 인 Answer
으로 초기화됩니다.
퀴즈를로드 할 때 메모리에있는 모든 질문이 필요하지 않다는 것을 알고 있습니다. Quiz
인스턴스의 questions
배열의 특정 인덱스에만 질문이 필요합니다.
일종의 dataSource 프로토콜 또는 지연로드 패턴이이 시스템에서 특정 퀴즈를로드 할 때 발생하는 메모리 사용량을 줄이는 데 도움이된다고 생각하지만 구현 방법을 잘 모르겠습니다. 커뮤니티가 가진 제안에 대해 정말 감사드립니다.
여기에 어떤 패턴을 사용하면 적절합니까? 짧은 코드 스 니펫 (snippet)은 내가 어떻게 구현할 지 이해하는 데 큰 도움이 될 것입니다.
사실 나는 이것이 내가해야 할 일이고 실제로 이것을하고 있음에 동의합니다. 필자는 혼자서 일하는 비교적 경험이없는 프로그래머이기 때문에 모범 사례에 대해 궁금합니다. – Prairiedogg
글쎄, 하나의 아주 좋은 연습은 필요에 따라 데이터를로드 할 수있는 핵심 데이터에 모든 데이터를 저장하는 것입니다. 그러나 숫자를 모른 채로 이것은 사실 일 수 없습니다. 예를 들어 핵심 데이터에는 특정 오버 헤드 및 기본 메모리 사용이 있습니다. 당신의 퀴즈 데이터가 완전히 거기에 들어 맞을 수도 있습니다. 퀴즈 데이터에 사용되는 메모리 또는 디스크 공간이 얼마나되는지 알고 있습니까? –