2010-04-14 2 views
2

Objective-C의 ApplicationDelegate.h 안에 변수와 메소드 서명을 넣는 주요 요점은 무엇입니까? 이렇게하면 다른 모든 뷰 컨트롤러 클래스에서 모든 메서드와 변수를 볼 수 있습니까? 그게 중요한가요?주요한 적용 지점 대표 클래스

또한 각 프로젝트에는 응용 프로그램 대리인 클래스가 하나만 있습니까?

답변

2

"이렇게하면 모든 메서드와 변수가 다른 뷰 컨트롤러 클래스에서 볼 수 있습니까?

물론, 앱 컨트롤러의 헤더를 가져 오는 모든 클래스는 공용 속성과 메소드 (및 ivars)에 액세스 할 수 있지만 앱 위임뿐만 아니라 모든 클래스에서 사용할 수 있습니다.

애플 리케이션 위임장에 앱 전체에 필요한 몇 가지 중요한 객체와 메소드를 넣는 것이 꽤 일반적입니다. 그런 식으로, 앱 위임 클래스에 정의 된 변수와 메소드를 볼 수있는 이유가 여기 있습니다.

때로는 의미가 있지만, 매우 빠르게 악화 될 수 있습니다. 매우 나쁜 디자인. 앱 위임을 앱의 모든 공유 상태 및 기능을 그냥 던져 넣을 수있는 바구니로 사용하지 않도록해야합니다. 나는 누군가가 지금 당장이 코드를 사용하고 있으며, 은 극도로이고 리팩터링 기능은 어렵다.

이것은 모든 것이 글로벌 상태를 사용하는 데있어 잘 알려진 문제의 버전 일뿐입니다. 즉, 기능을 분석하고이를 별도의 클래스 또는 클래스 그룹으로 나누어야합니다. 앱을 최대한 슬림하게 유지하십시오!

편집 : ...이 문제에 대해서는 Matt Gallagher's post을 읽으십시오.

3

코코아 및 코코아 터치 응용 프로그램의 컨트롤러 계층의 백본은 응용 프로그램 위임 (응용 프로그램 당 하나만 있음)입니다. 주요 기능은 특정 상황 (예 : 응용 프로그램 종료, 응용 프로그램 열기 등)에서 NS/UIApplication의 동작을 사용자 지정하는 것입니다. 또한 다른 응답자 (예 : 테이블보기, 개요보기 등)에 대리자를 할당하는 데 자주 사용됩니다.

작은 응용 프로그램에서는 대개 대부분의 인터페이스 요소에 대해 대리자 및 데이터 소스로 작동하지만 Felixyz가 지적했듯이 응용 프로그램이 커지면 빠르게 저하 될 수 있습니다.

+0

응용 프로그램 대리자 클래스의 변수 및 메서드 식별 ????? – user310000

+0

@ ahmet732 : 어떤 종류의 코멘트입니까? – Felixyz

+1

@Felixyz 그는 '?'을 놓쳤다. 여섯 명이 있다고 상상할 때 이해하기 쉽다. –