iOS Swift 가 프 록 시 프로 토 콜 을 만 드 는 다양한 방식 의 예제
1901 단어 ios에이전트 프로 토 콜swift
본 고 는 주로 iOS Swift 가 프 록 시 프로 토 콜 을 만 드 는 여러 가지 방식 을 소개 하고 공 유 를 통 해 참고 학습 을 제공 합 니 다.다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 해 보 겠 습 니 다.
만약 LXFView 라 는 클래스 가 있다 면,이 클래스 를 위해 프 록 시 프로 토 콜 을 만 들 려 면 어떻게 해 야 합 니까?
우선,프 록 시 프로 토 콜 의 명명 방식:클래스 이름+Delegatev
protocol LXFViewDelegate {
func view(_ view: LXFView)
}
우리 가 만 든 프로 토 콜 이 다른 프로 토 콜 을 준수 하 는 상황 에서 이렇게 쓰 는 것 은 잘못 되 지 않 습 니 다.그 다음 에 우 리 는 LXFView 에 프 록 시 속성 을 추가 합 니 다.순환 인용 을 피하 기 위해 프 록 시 속성 은 weak 로 수식 해 야 합 니 다.
class LXFPageView: UIView {
weak var delegate: LXFViewDelegate?
}
이때 바로 잘못 보 고 했 습 니 다.힌트 는 아래 와 같 습 니 다.
'weak' may only be applied to class and class-bound protocol types, not 'LXFViewDelegate'
weak 는 하나의 클래스 나 클래스 바 인 딩 프로 토 콜 의 유형 만 수식 할 수 있다 는 뜻 입 니 다.
알림 처럼 현재 프 록 시 는 클래스 나 클래스 바 인 딩 프로 토 콜 의 유형 이 아 닙 니 다.
현재 우리 의 이 협 의 는 클래스 에 의 해 지 켜 질 수 있 을 뿐만 아니 라 구조 체 와 매 거 에 의 해 지 켜 질 수 있 습 니 다.이것 은 weak 의 요구 에 도달 할 수 없습니다.그러면 어떻게 합 니까?
해결 방법 은 두 가지 가 있다.
방법
프로 토 콜 뒤에[:class]또는[:NSObject Protocol]을 직접 쓰 십시오.
protocol LXFPageViewDelegate: class
//
protocol LXFPageViewDelegate: NSObjectProtocol
이런 식 으로 는[class]를 추천 하 는 것 보다 경량급 입 니 다.
방법
protocol 앞 에[@obj c]를 추가 하여 obj c 형식의 프로 토 콜 을 표시 합 니 다.
@objc protocol LXFPageViewDelegate
이런 방식 에서 의 장점 은 협의 중의 방법 이 강제 적 으로 실현 되 지 않 는 다 는 것 이다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.