iOS/Swift
[Swift] NSObjectProtocol, NSObject
최지철
2024. 7. 16. 10:20
반응형
Cannot declare conformance to 'NSObjectProtocol' in Swift;
NSObject
NSObject는 모든 Objective-C 클래스의 기본 클래스이다.
NSObject는 기본적으로 MacOs와 iOS 최상위에 위치하고 있다. 이것은 모든 객체가 공통적으로 가져야 하는 기본적인 동작을 정의하며, 객체 지향 프로그래밍의 근간이 되기도 한다.
- 객체 초기화 및 메모리 관리:
- init: 기본 초기화 메서드
- deinit: 객체가 해제될 때 호출되는 메서드로, Swift에서는 deinit 키워드로 사용
- 객체 비교 및 해싱:
- isEqual(_:)와 hash: 객체 비교와 해싱을 위한 메서드
- 런타임 클래스 정보:
- class와 isKind(of:): 객체의 클래스 정보를 제공하고, 특정 클래스의 인스턴스인지 확인
- 메서드 실행 및 셀렉터:
- perform(_:): 셀렉터를 사용하여 메서드를 실행
- responds(to:): 객체가 특정 메서드를 응답할 수 있는지 확인
- 키-값 코딩 및 관찰:
- value(forKey:)와 setValue(_:forKey:): 키-값 코딩을 지원
- addObserver
NSObjectProtocol
NSObjectProtocol은 Objective-C의 핵심 프로토콜 중 하나로, 모든 Objective-C 클래스가 암묵적으로 채택하는 프로토이다.
이 프로토콜은 Objective-C 런타임에서 객체가 기본적으로 제공해야 하는 메서드들을 정의한다.
- isEqual(_:): 두 객체가 같은지 비교
- hash: 객체의 해시 값을 반환합니다. 이 값은 isEqual(_:) 메서드와 일관성을 가져야함
- class: 객체의 클래스 정보를 반환
- self: 객체 자신을 반환
- perform(_:): 주어진 셀렉터를 실행
반응형