2011-04-21 3 views

답변

7
[[[UIApplication sharedApplication] delegate] someMethod]; 

작품 (또는 내가 AppDelegate에 대한 참조를 유지하기 위해 RootViewController에 위임 객체를 생성해야 할)!

+0

감사 다니엘를 호출 할 수 있습니다 - 그리고 이 메서드를 사용하여 AppDelegate (내 경우에는 saveCoreData 메서드)에있는 메서드를 호출해도 문제가 없습니다. 즉, 모범 사례 또는 다른 것에 반대하는 것에 대해 아무 것도 없습니다. – Greg

+0

이 방법의 문제점은 올바르게 캐스팅하지 않고 앱 위임 클래스에 정의 된 사용자 정의 메서드를 호출하는 경우 컴파일러 경고가 발생한다는 것입니다. –

+2

개인적으로 App-Delegate와 작업하는 방식이 좋지 않습니다. 호출하는 viewController를 응용 프로그램 별 App-Delegate 구현으로 고정시켜 다른 프로젝트에서 호출하는 viewController의 재사용 가능성을 크게 줄입니다. 그래서 당신이 나에게 물었다면, 그렇게하지 말고 적절한 프로토콜을 정의하거나 NSNotification을 사용하십시오. – Till

6

당신은 내가 항상 내가이 많지 않아 (저를 위해 이렇게 MyCustomAppDelegate에 메서드를 추가하는 것이,이 너무 자주 발생

MyDelegate* aDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate]; 
2

사용하는 컨트롤러에서 애플 대리자에 액세스 할 수 있습니다 . 내 코드에서 주조의 지금

@implementation MyCustomAppDelegate() 
- (MyCustomAppDelegate *)appDelegate { 
    return (MyCustomAppDelegate *)[[UIApplication sharedApplication] delegate]; 
} 
@end 

어디서나 내가

[MyCustomAppDelgate appDelegate] 
관련 문제