2011-03-03 3 views

답변

48

난 당신이 무슨 뜻인지 확실히 모르겠어요. 기본 옵션은 다음과 같습니다.

  1. 해당하는 경우 응용 프로그램 대리인을 참조하십시오. 다음과 같이보기 컨트롤러 클래스에 코드를 작성합니다.
    id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
  2. 보기 컨트롤러를 만들 때 속성을 전달합니다. 이 경우 뷰 컨트롤러에 @property이 선언되어 있고 사용하려면 @synthesize d가 있어야합니다. 그러면 앱 대리인이 뷰 컨트롤러 인스턴스의 속성 만 설정하게됩니다.

위 옵션 중 어느 것도 앱 대표자의 사본을 @property으로 유지해야하지만 첫 번째는 위임자를 한 번 참조합니다.

+0

[UIApplication sharedApplication] .delegate; 이것은 standrad 방식인가, 왜 내가 "sharedObject"라는 AppDelegate 클래스에있는 3 개의 다른 클래스 파일에 "sharedObject"라는 속성이 필요합니까? – Anandh

+1

속성을 저장하는 싱글 톤 클래스를 만들고 싶지 않다면,'[[UIApplication sharedApplication] delegate] '를 사용하면 여러 클래스 사이에서 해당 속성에 액세스 할 수 있습니다. (솔직히 말해서, 기본적으로 어쨌든 싱글 톤에 접근하고 있습니다. 싱글 톤을 곱할 필요가 없습니다.) – Tim

19

[UIApplication sharedApplication]를

당신은 또한 당신의 뷰 컨트롤러의 응용 프로그램 위임 헤더 파일을 포함 할 가능성이 실제 응용 프로그램 위임 클래스 ID의 위임을 캐스트 것 .delegate. 뷰 컨트롤러에 응용 프로그램 위임 정보를 얻을 수있는 여러 가지 방법이 있으며, "위임의 기준을 만들지 않고"라는 문구가 명확하지 않다 -

#include "MyAppDelegate.h" 

((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty; 
2
[UIApplication sharedApplication].delegate; 
+0

[UIApplication sharedApplication] .delegate;을 수행하는 것 외에도 동일한 방법을 찾고 있습니다. 1. 게시/구독을 통해 가치에 접근하는 것과 같은 것? 2. 질문 [UIApplication sharedApplication] .delegate; 이것은 standrad입니까, 왜 제가 묻는 것은 "sharedObject"가 AppDelegate 클래스에있는 3 개의 다른 클래스 파일에서 "sharedObject"라는 속성을 필요로하는지 묻는 것입니까? – Anandh

관련 문제