2013-03-19 3 views
1

저는 iOS 개발의 상대적인 초보자입니다. 그러나 제 앱이 원하는 모든 것을 할 수있게했습니다. 그러나 앱을 함께 묶는 것에 대해 몇 가지 질문이 있습니다.appDelegate를 앱의 나머지 부분에 묶으려면 어떻게해야하나요?

내 appDelegate에있는 유일한 코드는 원격 알림을 처리합니다. 원격 알림을 받으면 경고, 메시지 등을 사용자에게 보냅니다. 또한 다른보기 컨트롤러 안에서 다른 메소드를 실행하는 알림 센터에 대한 알림을 생성합니다.

appDelegate의 모든 다른 기능은 무엇입니까? DidEnterBackground, WillEnterForeground 등? 내 애플 리케이션은 stopStream 메쏘드를 가진 객체 (stream1)를 생성하는 하나의 view (view1)에서 시작한다. 스트림을 시작하고 중지 할 단추가 있습니다 ([self.stream1 stopStream]). 내 질문에, 어떻게 이러한 메소드를 호출하여 appDelegate 메소드 중 하나에서 객체의 특정 인스턴스를 중지 할 수 있습니까? appDelegate 내부의 알림 센터에 대한 알림을 생성하고 뷰에서 트리거링을 처리해야합니까? 아니면 더 간단한 방법이 있습니까? 아니면 최선의 관행에 따르지 않고 완전히 잘못하고있는 것입니까?

도움이 될 것입니다. 또한 앱 아키텍처에 대한 가이드 링크 또는 iOS에서 앱을 만드는 방법에 대해 좋아하는 책에 대한 링크도 좋습니다.

답변

1

앱 대리인이 실제로 이러한 이벤트로 무엇인가를해야하는 경우 다양한 앱 대리인 메서드 만 구현하면됩니다.

특정 뷰 컨트롤러 또는 다른 클래스가 백그라운드에서 입력하거나 전경으로 돌아가는 등의 다양한 앱 위임 알림에 관심이 있다면 해당 뷰 컨트롤러 또는 다른 클래스가 해당 알림을 등록해야합니다. 다양한 알림은 UIApplication의 문서를 참조하십시오.

앱 대리인 메서드에 맞춤 알림을 게시하지 마십시오.

+0

그래서 다양한 메소드가 호출 될 때 appDelegate가 알림을 게시합니까? 재미있는; 나는 문서를 찾을 것이다! – Bassel

+0

아니, 그건 내가 말한 것이 아니야. 예를 들어 앱이 포 그라운드로 돌아 오면 OS는 두 가지 독립적 인 작업을 수행합니다. 1) 구현 된 경우 앱 위임에 대해 'applicationWillEnterForeground :'메소드를 호출합니다. 2) 'UIApplicationWillEnterForegroundNotification'을 게시합니다. 이 알림을 등록한 모든 클래스에 알림이 전송됩니다. – rmaddy

+0

아 좋아. 그것은 매우 도움이됩니다. 고맙습니다! – Bassel

0

찾고 계시는 모든 방법은 here in the docs입니다.

앱에 대해 할 일은 분명히 앱에 달려 있습니다. 적어도 백그라운드에 적절하게 들어가고 나가기 위해서는 적어도 메소드를 사용하고 앱에서 적절한 조치를 취하는 것이 가장 좋습니다.

당신이 언급 한 것처럼 단순히 NSNotifications를 폭발시키는 앱에 대해 매우 일반적입니다. 대부분의 상황에서 완벽하게 수용 가능합니다.