2013-10-30 3 views
0

저는 게임을 개발 중이며 StageViewController라는 클래스가 있습니다. 내부의 코드가 매우 길고 무딘 것으로 나타났습니다. 이 클래스에서는 제스처, 위치, 애니메이션에 대한 컨트롤러가 있으며 정적 클래스 또는 싱글 톤 클래스를 사용하여이 클래스를 쉽게 지울 수 없습니다. 코드를 단순화하기 위해이 StageViewController 내부에있는 다른 뷰 컨트롤러를 사용할 수 있습니까? 예 : 내 게임에서 색상을 지정해야하는 객체를 입력해야하는 경우 다른 ViewController (다른 클래스 사용)를 사용하여 StageViewController 내에서 코드를 더 단순화 할 수 있습니까?iOS : 코드가 깨끗하고 정적 클래스 또는 싱글 톤을 사용하십시오.

당신이 읽을 수있는 날 또는 링크에 대한 어떤 제안이있는 경우 ;-)

+0

두 개 이상의 파일간에 코드를 분할 할 수도 있습니다. – Zalykr

+0

이 범주는 무엇입니까? – CrazyDev

+0

여기를 보시기 바랍니다 : https://developer.apple.com/library/ios/documentation/general/conceptual/DevPedia-CocoaCore/Category.html – Zalykr

답변

1

나를 행복하게 만들 수 있습니다 일반적으로이 당신이 뷰 컨트롤러에서 모델 정보를 저장하고 있음을 나타냅니다. 뷰 컨트롤러는 정보를 표시하는 방법 만 추적하면됩니다. 게임의 실제 을 모델 클래스로 옮겨야합니다. 이 모델 클래스는 NSObject에서 상속되며 뷰 컨트롤러가 아닙니다.

잘 설계된 모델보기 컨트롤러 시스템에서는 디스플레이가 어떻게 보이는지 몰라도 전체 게임을 실행할 수 있어야합니다. 모델이 정보가 실제로 표시되는지 여부에 관계없이 입력을 받아 게임 상태를 업데이트하고 출력을 제공 할 수 있어야합니다. 이러한 종류의 사고는 재사용 가능성을 향상시키고 뷰 컨트롤러의 복잡성을 줄여줍니다.

+0

네,하지만 가장 좋은 해결책은 정적 인 모델 클래스를 사용하는 것입니다. 클래스 (NSObject)? 예 : 스코어 포인트를 확인하거나 요소를 올바른 위치로 드래그했는지 확인하는 데 사용합니다. 이것이 올바른 사용법입니까? 이 클래스 안에서 클래스 메서드를 사용할 수 있습니까? (나는 선언문에서 "+"를 사용하는 메소드를 의미한다.) – CrazyDev

+0

NSObject는 "정적 클래스"를 의미하지 않는다. 시작시 모델 객체를 생성하여 뷰 컨트롤러로 넘겨 주거나 싱글 톤을 사용할 수 있습니다. 우리가 "우주선 주위로 날아 다니는 우주선"게임에 대해 이야기한다면 "우주선"물체가있을 것이라고 기대할 수 있습니다. 그리고 그 위치가 바뀌면 견해가 적절히 업데이트됩니다. 무언가가 선박 객체를 파괴하면보기 제어기는 해당보기를 제거합니다. 등 –

+0

괜찮 았어 도와 줘서 고마워 ... – CrazyDev