차례:
비디오: What’s New in AppKit for macOS 2024
iOS 앱에 대한 자신 만의 모델 (특히 모델 클래스)은 특정 프레임 워크 클래스의 동작을 사용자 정의하려는 경우가 많습니다.
-
서브 클래 싱하기
-
위임하기
-
선언 된 프로퍼티들
서브 클래 싱하기
Objective-C는 다른 객체 지향 프로그래밍 언어와 마찬가지로, 이미 선언 된 클래스입니다. 기본 클래스는 수퍼 클래스라고 불립니다. 새로운 클래스는 서브 클래스입니다. 정의한 각 하위 클래스는 수퍼 클래스의 메서드 및 인스턴스 변수를 상속합니다.
추상 클래스라고합니다. 서브 클래스를 직접 인스턴스화 할 수 있습니다.이 인스턴스를 concrete 인스턴스라고합니다. 거의 모든 객체 지향 프로그래밍 언어가 서브 클래 싱을 지원합니다. 그러나 때로는 약간의 문제가 있습니다. 이는 다중 상속 문제입니다. 즉, 클래스를 두 클래스의 하위 클래스로 만들려는 경우입니다. 두 하위 클래스 모두 클래스 계층에 있으면 문제가 없습니다. 구조라는 클래스, 주거 구조라는 하위 클래스 및 집이라고하는 하위 클래스를 가질 수 있습니다.
은 iOS 프레임 워크에서 광범위하게 사용되는 패턴으로, 심각한 앱 개발 작업을 원한다면 주위를 둘러 봐야 할 것입니다. 그것. 사실, 당신이 그것을 이해한다면, 당신의 삶은 즉각적으로 훨씬 쉽게 관리 될 것입니다.
객체를 서브 클래스 화하는 대신 하나의 객체는 책임 중 하나를 구현하는 작업을 다른 객체에 위임합니다. 와 같이 프레임 워크에서 제공하는 동작이 풍부한 객체를 사용하고 프로그램 별 동작을위한 코드를 별도의 (위임) 객체에 넣고 있습니다. 프레임 워크 개체에 대한 요청이있을 때 프로그램 별 동작을 구현하는 대리자 메서드가 자동으로 호출됩니다. iOS 프레임 워크는 위임 패턴에 크게 의존합니다. 예를 들어, UIApplication 객체는 앱을 실행하는 데 필요한 실제 작업의 대부분을 처리합니다.하지만 본 것처럼 애플리케이션은 애플리케이션: didFinishLaunchingWithOptions: 메시지를 위임하여 앱에 고유 한 모델 객체를 생성 할 수있는 기회를 제공합니다.
프레임 워크 객체가 델리게이트를 사용하여 특정 동작을 구현하도록 설계된 경우 필요한 동작 (또는 구현 옵션이 제공됨)은프로토콜로 정의됩니다. 프로토콜은 델리게이트 객체가 구현하는 인터페이스를 정의합니다. iOS에서 프로토콜은 공식 또는 비공식이 될 수 있습니다. 공식 프로토콜에는 객체가 프로토콜을 준수하는지 여부를 확인하기 위해 유형 확인 및 런타임 검사와 같은 항목에 대한 지원이 포함됩니다. 공식 프로토콜에서는 일반적으로 모든 메소드를 구현할 필요가 없습니다. 많은 것은 선택적으로 선언됩니다. 즉, 앱과 관련된 것만 구현해야합니다. 정식 프로토콜이 대리자에게 메시지를 보내려고 시도하기 전에 호스트 개체는 대리자가 메소드를 구현하는지 (respondsToSelector: 메시지를 통해) 여부를 결정하여 메서드가 구현되지 않은 경우 아무 데나 들어가는 것을 당혹스럽게합니다. 프로토콜은 요구 된 프로토콜의 방법을 구현하는 한 모든 클래스에 의해 채택 될 수있다. 따라서 하나 이상의 프로토콜을 채택하고 대리자가 됨으로써 하나의 클래스가 다른 두 클래스의 기능을 구현할 수 있습니다. 이는 여러 상속의 근사를 제공합니다.