iOS 프록시 모드 설정 방법

6008 단어
프록시 모드는 보통 이와 같은 문제를 해결하는 데 사용된다. 우리는 인터페이스 A를 통해 인터페이스 B를 열었지만 응용이 진행되는 과정에서 인터페이스 B도 때때로 A와 주동적으로 연락해야 한다. 예를 들어 어떤 단추를 눌렀을 때.가장 좋은 방법은 A를 B의 대리인이 되도록 하는 것이다. 그러면 B는 필요할 때 A에게 메시지를 보낼 수 있다.
대리 모델의 장점 중 하나는 B가 실제로 A의 어떤 것도 이해할 필요가 없고 A가 자신의 대리라는 것만 알면 된다는 것이다.이런 모델에서 B는 여전히 A와 독립하여 느슨한 결합을 실현했다.
객체 A는 객체 B의 에이전트이며, 객체 B는 A에 메시지를 보내야 하며 설정 방법은 4단계로 나뉜다.
1. 대상 B의.h에서protocol 프록시 프로토콜을 정의하고 프로토콜의 속성 변수를 설명합니다
2. 대상 B가 적당한 때에 대리 대상 A에게 메시지를 보내도록 한다. 예를 들어 버튼을 터치할 때.
3. 대상 A가 대리 협의를 준수하도록 한다
4. 통지 대상 B, 현재 A는 그의 대리이다
단계별 설명:
1. B.h에서 프록시 프로토콜과 속성 변수 정의
 1  /*****B.h*****/
 2  
 3 @protocol BDelegate
 4  
 5 - (void) degegateMethod:(instanceType)instance;
 6  
 7 @end
 8  
 9 @interface B
10  
11 @property(weak,nonatomic) id delegate;
12  
13 @end

2. B.m에서 B가 A에게 메시지를 보내는 방법을 실현하고done 단추를 누르는 것을 예로 들면 다음과 같다.
 1 /*****B.m******/
 2  
 3 #import "B.h"
 4  
 5 @interface B()
 6   
 7 @end
 8  
 9 @implementation B
10 
11 - (IBAction)done:(id)sender{
12 [self.delegate delegateMethod:instance];
13 }
14 
15 @end

3. A가 프록시 프로토콜을 따르도록 하고 A.h의 @interface 성명에 뾰족한 괄호를 추가하면 된다
1 /*****A.h*****/
2 
3 @interface A
4 
5 @end

4. 통지 대상 B, A는 이미 그의 대리가 되었다.A.m에서 에이전트를 구현하면 됩니다.
 1 /*****A.m*****/
 2 
 3 #import "A.h"
 4 
 5 @interface A()
 6  
 7 @end
 8 
 9 @implementation A
10 
11 - (void)delegateIdentifierMethod:(B *)b{
12 //do something;
13 B.delegate=self;      //identify the delegate of B is A
14 }
15  
16 - (void)delegateMethod:(instanceType)instance{
17 //do something
18 }
19  
20 @end

주의해야 할 것은 B.h에서 설명한 프록시 방법인 delegateMethod는 A.m에서 이루어져야 하며, 그렇지 않으면 오류가 발생할 수 있습니다.
전재 대상:https://www.cnblogs.com/yapollo/p/5021174.html

좋은 웹페이지 즐겨찾기