2011-01-28 2 views
0

주제가 이벤트 처리를 이해하는 데 문제가 있음을 알리는대로iOS 기기에서 이벤트 처리를 이해하는 데 문제가 있음

기본적으로 다음과 같은 문제점이 있습니다. 다른 클래스에서 정적 호출을받는 클래스가 있습니다. 그러한 호출이 오면,이를 청취하는 다른 클래스에 통지를 보내야합니다.

나는 NSNotificationCenter가 있다는 것을 알고 있지만, 내가 본 것처럼, 어떻게 든 다른 방법으로 arround 작동합니까?

누군가 나를 도와 줄 수 있기를 바랍니다.

-mcb

+0

** 대표 **를 사용하는 것은 어떻습니까? 나는 당신의 필요에 맞을 것 같아요. – EmptyStack

+0

사실, 통보해야 할 여러 개의 클래스가 있기 때문에 사실, NSNotificationCenter를 사용해야합니다. 내가 아는 바와 같이 대표단은 하나만을 위해 일합니까? 내가 틀렸다면 알려주세요. – eemceebee

+0

귀하의 질문은 무엇입니까? 통지를 받고 싶은 클래스는, 특정의 통지의 옵저버로서 자신을 추가해, 통지 클래스는 통지를 송신합니다. 너는 맞다. –

답변

0

NSNotificationCenter는 사용하기 매우 쉽습니다.

한 클래스는 말한다 :

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 
[center postNotificationName:@"UniqueNotificationName" 
         object:self]; 

그리고 TA-다 :

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 
[center addObserverForName:@"UniqueNotificationName" 
        object:self 
        queue:nil 
       usingBlock:^{ 
    NSLog(@"I just got notified of UniqueNotificationName!"); 
    //whatever else you want to do when you receive this notification 
}]; 

그리고 다른 클래스는 말한다! 첫 번째 수업에 두 번째 사람이 알림을 발송했다고 통보했습니다. 쉬워요.

블록이 당신을 협박하면 (실제로 그들과 함께 작업하기 전에 나를 위협했다), 선택기를 대신 사용하는 "addObserver"버전이 있습니다. 가서 철자법을 찾아보세요. IMO NSNotificationCenter의 클래스 문서는 대부분의 사용자에게 불필요한 방식으로 작업의 깊이에 대해 설명합니다. 따라서 여러분이 거기에 들어가면해야 할 일보다 더 힘들어 보이므로 걱정하지 마십시오.

관련 문제