2012-04-16 6 views
0

다른 질문을 살펴본 결과 아무도 시간을내어 볼 수 없다면 여전히 고민 중입니다. :)모델 클래스 만들기

현재 내 응용 프로그램은 정상적으로 작동하지만 읽었으며 MVC 디자인 패턴에 맞지 않는다고 결정했습니다. 나는 여전히 디자인에 대해 많은 것을 배우고 있으며 더 많은 사운드를 낼 수 있도록 편집하고 싶습니다.

내 모델 클래스에 무엇이 들어가야하는지 알고 있다고 생각합니다. 앱 위임자에서 인스턴스화해야한다고 생각합니다. 내 질문은 : 왜 그 위치에 있습니까? 게으른 인스턴스 생성이 최선/올바른 방법입니까? 그리고 마지막으로 일단 시작되면 클래스에 액세스하기 위해 속성을 사용합니까? 아니면 특수 메서드를 사용합니까?

과부하에 대해 죄송합니다. 나는 또한 다른 질문에 투표하기에 충분한 나의 명성을 얻으려고 노력하고있다! :)

+0

앱은 현재 어떻게 구성되어 있습니까? –

+0

나는 모든 배열, 사전 및 viewcontroller 내의 문자열을 가지고 있고 그 정말 이루어져야한다고 생각합니다. 데이터가있는 모델 클래스를 갖고 싶습니다. 그런 다음 어떻게 든 viewcontroller 클래스로 전달됩니다. 클래스의 인스턴스를 만들고 헤더 파일을 가져와 사용해야 할 때가 있지만 100 % 확실하지는 않습니다. 당신이 약간의 지침을 줄 수 있다면, 나는 긍정적 인 피드백을주고 영원히 감사 할 것입니다 !! :) –

답변

1

특정 프로젝트를 구현할 수있는 방법이 너무 많기 때문에 이와 같은 일반적인 질문에 대답하기가 정말 어렵습니다. 일반적으로, 나는 당신의 앱 델리게이트에서 모델 클래스를 인스턴스화하는 것이 반드시 필요하다고 생각하지 않는다. 컨트롤러 클래스는 모델과 뷰를 중재하기 때문에 컨트롤러 클래스에서 모델을 인스턴스화하는 것이 더 좋습니다. 예를 들어 정원에있는 식물을 추적하는 프로그램이 있고 컨트롤러 클래스는 하위 클래스입니다. NSArrayController. 컨트롤러에 새로운 식물 객체를 만든 다음 배열 객체에 추가하는 것이 이치에 맞습니다. 내가 할 수있는 한 클래스 간의 속성 (연결 고리 또는 ivars)을 거의 사용하지 않으려 고합니다. 가능한 한 많이 각 클래스가 자체 비즈니스를 처리해야한다고 생각합니다. 종종 클래스에 대한 참조가 필요하지 않습니다. 클래스 메소드를 호출하여 새 객체를 작성한 다음 해당 객체가 클래스에 대한 명시 적 참조없이 해당 클래스의 모든 인스턴스 메소드에 액세스 할 수 있기 때문입니다.

+0

@rdelmar 감사합니다. 그럼 컨트롤러 클래스에서 alloc과 init을 수행 한 다음 거기에서 메소드를 호출합니까? 게으른 인스턴스 생성 자습서를 온라인에서 보았습니다. 그 하나의 객체를 만들 수있는 확실한 방법입니까? 이 모든 작업을 수행하기 위해 모델의 헤더 파일을 가져와야합니까? 과부하를 유감스럽게 생각합니다! :) –

+1

예, 컨트롤러 클래스에서 alloc inits를 사용하여 새 모델 객체를 만드는 경우 해당 객체는 모델 클래스에 구현 된 인스턴스 메서드 중 하나를 호출 할 수 있습니다. "하나의 객체 생성 보장"이 무슨 뜻인지 모르겠지만, 느린 인스턴스 생성은 모델 객체를 만드는 데 좋은 아이디어라고 생각합니다. 그리고 네, 모델 클래스의 헤더 파일을 가져올 것입니다. – rdelmar

+0

감사합니다. 도움이됩니다. 내가 의미하는 바는 만약 한 컨트롤러에서 alloc과 init을했다면 다른 컨트롤러에서 그 모델을 다시 사용하고자 할 때 (예를 들어), 다시 할당하는 것은 나쁜 일일 것입니다. 나는 게으른 인스턴스화를 사용하면 생각하지 못했던 하나의 모델 만 생성되도록하고 그렇지 않은 경우 '생성 된'모델을 반환 할 것입니다. 죄송 합니다만, 내 담당자에게서 볼 수 있듯이, 저는 이것에 대해 매우 새로운 것입니다. –