2010-01-05 2 views
1

지금 첫 번째 응용 프로그램을 만들고 있는데 아주 잘 진행되고 있습니다.하지만 올바른 응용 프로그램 디자인을 사용하고 있는지 궁금합니다.iPhone 응용 프로그램, Singletons, ViewControllers와 응용 프로그램 디자인간에 메시지 전달

navController를 사용하여 몇 개의 viewcontrollers를 표시하는 앱을 만들고 있습니다.

첫 번째 viewController에서 CustomObject가 만들어지고이 customObject에 대한 연속적인 viewControllers 속성이 선택되고 설정됩니다.

모든 coredata 작업을 처리하는 싱글 톤 클래스를 만들었습니다. 새로운 객체를 생성합니다. 생성 된 객체 등을 저장합니다. Singleton에는 currentObject 속성이 있습니다. 모든 ViewController는이 싱글 톤에 액세스 할 수 있습니다.

예를 들어보기 1에서 사용자는 "새 차"버튼을 탭합니다. CoreDataSingleton은 currentObject를 사용하여 액세스 할 수있는 새 car 객체를 만듭니다.

새보기가 푸시되고 새 자동차의 기본값이 표시됩니다.

사용자 탭은 "색상 선택"을 선택하면 색상을 선택할 수있는 새 ViewController가 표시됩니다. singleton.current 객체를 사용하면 색상이 설정되고보기가 팝업되고 다른 속성을 설정할 수 있습니다. 마지막으로 사용자 탭 "Save"와 [Singleton saveCurrentObject]가 호출됩니다.

이 방법은 잘 작동하지만 나는 사람들이 싱글 톤이 나쁜 말 웹에 게시물을 많이 읽어 봤는데, 최악의 당신 등 등 ... ...

당신은 무엇에 대해 생각 할 수 이 응용 프로그램 디자인? 싱글 톤 (Singleton)이 좋지 않다면 어떻게 이런 종류의 기능을 구현할 수 있을까요?

감사합니다, 미키 엘

답변

0

는 "싱글 톤이 나쁜"정신 "전역 나쁜"의 확장입니다. 실제로, 그것은 당신을 위해 작동한다면, 위대한, 그것을 사용하십시오. 실제로 키는 무엇이든 마찬가지로 사용중인 알고리즘을 사용하는 데 따른 단점과 함정을 알고 있다는 것을 알고 있습니다. 사용하는 알고리즘을 사용하는 경우 아무 문제가 없습니다.

0

글쎄, 데이터를 직렬화하고 파일이나 데이터베이스에 저장 한 다음 다시 볼 때마다 다시로드 할 수 있습니다. 또는 새 테이블 뷰를 푸시 할 때 현재 오브젝트를 매개 변수로 전달할 수 있습니다. 나는 정말로 그 문제를 다루는 다른 방법을 생각할 수 없다.

어느 쪽도 본질적으로 현재하는 방식보다 우수하지 않습니다. 객체를 변수로 전달하는 것은 일종의 고통이며 직렬화/역 직렬화는 현재 수행중인 작업을 느리고 고통스럽게 수행하는 방법입니다.

다른 좋은 점은 응용 프로그램 종료시에도 개체를 저장하는 것이 쉽습니다.

1

여기가 좋은 article이며 싱글 톤 대 AppDelegates에서 읽습니다. 대부분의 경우 Singleton이 전역 액세스 변수를 구현하는 데 더 좋은 방법 인 이유와 AppDelegates를 사용하는 이유를 설명합니다.

관련 문제