728x90
안녕하세요.
NSObject를 상속받는 클래스라면 performSelector로 함수를 호출해 줄 수 있어요.
함수 호출할 때 인자도 같이 넘길 수 있는데 최대 2개까지만 넘길 수 있습니다.
Objective-C에선 NSInvocation을 사용해서 제약 없이 여러 argument(인자)를 넘길 수 있어요.
근데 Swift에는 NSInvocation이 없어서... 다른 방법을 써야 해요.
제가 찾은 Swift에서 여러 인자 넘기는 몇 가지 방법 소개할게요.
## 1. 배열을 사용하자.
배열을 전달받는 함수를 추가로 정의하고 함수 내부에서 배열을 파싱해서 사용하는 것이에요.
- 장점
- 없는 듯..?
- 단점
- optional unwrapping 처리 필요
- 배열 순서 중요
## 2. Dictionary를 사용하자.
위와 마찬가지로 Dictionary를 사용하는 방법이 있어요.
- 장점
- 없는 듯22...?
- 단점
- value를 얻기 위해 argument와 동일한 키를 알고 있어야 함.
- optional unwrapping 처리 필요
## 3. 커스텀 클래스를 사용하자.
Array, Dictionary를 사용하지 않고 커스텀 클래스를 사용하는 방법이 있습니다.
- 장점
- optional unwrapping 처리 불필요
- 인자 타입이 변경되거나 추가될 경우 컴파일 에러
- 단점
- NSObject 클래스 타입을 인자로 넘겨야 함
이번 글은 여기서 마무리.
반응형
'TroubleShooting' 카테고리의 다른 글
아이폰 개인정보 보호 및 보안 추적 선택 불가 문제 (0) | 2024.05.18 |
---|---|
[Privacy Manifest] 앱 심사 시 third-party SDK의 PrivacyInfo가 적용 안되는 이슈 (1) | 2024.03.25 |
[SwiftUI] Image에 List 구분자 적용 (0) | 2024.02.14 |
[SwiftUI] 자식뷰 NavigationBar 공백 제거 (0) | 2024.02.14 |
[SwiftLint] closure [weak self] trigger rule 추가 (2) | 2024.01.30 |