2012-01-23 2 views
2

일을하는 가장 좋은 방법을 알아 내려고합니다. 나는 언어로서의 객관적인 관점에서 새로운 사람이다.목표 C 객체 간 통신 방법은 무엇입니까?

나는 객체 클래스 A와 객체 클래스 B를 가지고 있으며 A가 클래스 B에 대한 메소드를 호출하고 일단 그 메소드가 B 호출을 수행하기를 원한다면 결과를 알려준다.

내가 지금하고있는 일은 NSNotificationCenter에 자신을 추가하는 클래스 A에 있습니다. 클래스 B가 통지를 게시하는 것보다. 그것은 작동하지만 간단한 프로세스 의이 유형에 대한 잔인한 것 같습니다.

클래스 B에 자기의 포인터를 전달하는 것이 합법적일까요? 뭔가?

// from class A 
- (void)methodInClassA 
{ 
B * b= [[B alloc]init]; 
[b callMethod:self]; 
[b release]; 
b = nil; 
} 

where class B would be 
- (void)callMethod:(A*)sender 
{ 
    [sender resultCallbackMethod]; 
} 
+0

당신은 싱글 톤을 사용해야합니다. 이것은 당신이 가지고있는 문제를 제거 할 것입니다. –

답변

3

단지 protocols (Swift 3.1)를 사용합니다. here에 대한 설명이 잘 설명되어 있습니다.

프로토콜은 모든 클래스에서 구현할 수있는 메서드를 선언합니다. 프로토콜은 적어도 세 가지 상황에 유용합니다

  • 다른 사람이
  • 계층 적없는 클래스들 사이의 유사성을 캡처하려면 해당 클래스를 은폐하면서 객체에 대한 인터페이스를 선언하려면
  • 을 구현하기 위해 예상되는 방법을 선언하려면 관련
+0

정확히 내가 필요한 것은 "인터페이스"의 일부 유형을 찾고있었습니다. – Chris

+0

프로토콜 설명서 링크가 손상되었습니다. –

+0

링크가 업데이트되었습니다. 감사! – dive