반응형
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(_:): 주어진 셀렉터를 실행
반응형
'iOS > Swift' 카테고리의 다른 글
[Swift] split과 components (0) | 2024.09.16 |
---|---|
[Swift] global과 static은 기본적으로 lazy (0) | 2024.07.30 |
[Swift] 고차함수 (map, filter, reduce, compactMap, flatMap) (0) | 2024.07.05 |
[Swift] 타입에러 경고 Cast from 'JSON?' to unrelated type ' ' always fails (0) | 2024.07.04 |
[Swift] self?. vs guard let self = self (0) | 2024.07.03 |