쉬운 쉬운! 우리는 프로토콜 식용을 정의하고 클래스 애플에서 구현했습니다. 이러한 모든 질문은 UITableView로 들어가는 데이터와 비슷한 관련이 있습니다. 결과적으로, 그들은 모두 UITableViewDataSource라는 단일 프로토콜로 이동합니다. 해당 프로토콜 내부의 일부 동작은 선택 사항입니다. 예를 들어 canEditRowAt는 선택 사항이며 값을 직접 제공하지 않는 경우 true로 기본값입니다. 배열의 개체가 HasArea 프로토콜을 준수할 때마다 as에 의해 반환되는 선택적 값? 연산자는 객체WithArea라는 상수에 선택적 바인딩으로 래핑되지 않습니다. objectWithArea 상수는 HasArea 형식인 것으로 알려져 있으므로 해당 영역 속성에 액세스하여 형식에 안전한 방식으로 인쇄할 수 있습니다. 클래스 인터페이스는 해당 클래스와 연결된 메서드 및 속성을 선언합니다. 반대로 프로토콜은 특정 클래스와 독립적인 메서드 및 속성을 선언하는 데 사용됩니다. 프로토콜에 대한 Apple의 설명서는 다른 이유를 효과적으로 설명합니다. 구문으로 돌아가봅시다. 원형 차트 뷰에 필요한 최소 정보에는 세그먼트 수, 각 세그먼트의 상대 적 크기 및 각 세그먼트의 제목이 포함됩니다. 따라서 원형 차트의 데이터 원본 프로토콜은 다음과 같이 보일 수 있습니다.

이 열거형은 열거 형 사례에 의해 표시된 두 상태 간에 전환됩니다. 열거형토글 구현은 토글 가능한 프로토콜의 요구 사항에 맞게 변이로 표시됩니다: Objective-C는 각도 대괄호를 사용하여 프로토콜에 대한 적합성을 나타냅니다. 이 예제는 XYZPieChartChartDataDataSource 프로토콜을 준수하는 일반 개체 포인터에 대해 약한 속성을 선언합니다. http://stackoverflow.com/questions/844678/how-to-handle-objective-c-protocols-that-contain-properties 동시에 여러 프로토콜을 준수하는 형식을 요구하는 것이 유용할 수 있습니다. 여러 프로토콜을 프로토콜 컴포지션을 통해 단일 요구 사항으로 결합할 수 있습니다. 프로토콜 컴포지션은 컴포지션의 모든 프로토콜의 결합된 요구 사항이 있는 임시 로컬 프로토콜을 정의한 것처럼 행동합니다. 프로토콜 컴포지션은 새 프로토콜 형식을 정의하지 않습니다. 뱀과 사다리 게임 보드 설정은 클래스의 초기화() 초기화 에서 이루어집니다.