iOS 프록시 모드 설정 방법
대리 모델의 장점 중 하나는 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.