반응형
iOS에서는 Objective-C와 Swift를 한 파일에서 혼용하여 사용할 수 있습니다.
따라서 기존 프로젝트가 어떤 언어로 구현되어 있는지는 우리에게 영향을 주지 않습니다.
이번 게시물에서는 Swift에서 Objective-C 코드를 사용하는 방법을, Objective-C에서 Swift 코드를 사용하는 방법을 알아보겠습니다.
Swift에서 Objective-C 사용하기
Swift에서 Objective-C를 사용하는 방법은 자동으로 브릿지 파일을 생성하는 방법과 수동으로 생성하는 방법이 있습니다.
자동으로 생성하는 방식은, Swift 파일을 생성할 때 Xcode에서 브릿지파일을 만들거냐고 물어봅니다. 이때 만들어달라고 하면 알아서 만들어주기 때문에 그대로 사용하면 됩니다.
따라서 아래부터는 수동으로 브릿지파일을 만들어 사용하는 방법을 다뤄보겠습니다.
- New File > Header File > {project name}-Bridging-Header.h 생성 (이때 브리징 헤더 파일명은 왼쪽과 같은 규칙을 따라야 합니다)
- 생성된 헤더파일을 Build Settings에 추가하여 컴파일할 때 참조되도록 해야 합니다.
- Project > Targets > Build Settings > Defines Module 은 YES 로 설정합니다.
- 브리징헤더 ({project name}-Bridging-Header.h) 파일에 사용하고자 하는 Objective-C 소스의 헤더파일을 import 시켜줍니다. --> #import "{objc file name}.h"
- 그럼 이제 Swift 소스에서 Objective-C로 구현한 부분을 사용할 수 있습니다. 뭐 objc에서 구현된 클래스를 사용하여 객체를 생성한다던가 하는 작업 말이예요!!
실습해보면서 겪은 오류
Command PrecompileSwiftBridgingHeader failed with a nonzero exit code
(해결중..)
Objective-C에서 Swift 사용하기
Objective-C 파일에서 Swift 파일의 소스를 사용하고 싶다면, Swift에서 @objc 어노테이션을 붙여주면 됩니다.
그리고 NSObject를 상속받아 구현합니다.
1. Swift 파일 생성
2. 사용할 Objective-C에 #import "{module name}-Swift.h" 추가
3. Objective-C 파일에서 Swift 코드 사용하기
Reference
반응형
'iOS > iOS' 카테고리의 다른 글
UIView의 각 코너마다 서로 다른 radius 적용하기 (0) | 2022.04.19 |
---|---|
[Objective-C] 기본문법 (함수, 변수) (0) | 2022.01.13 |
Displaying a Bottom Sheet in iOS 15 Using UISheetPresentationController (0) | 2021.07.11 |
이미지 캐시 처리와 NSCache (4) | 2021.06.23 |
CATransform3D 애니메이션 (1) (0) | 2021.05.15 |
댓글