본문 바로가기
iOS/iOS

Objective-C 와 Swift 혼용 사용하기

by 헤콩 2022. 1. 13.
반응형

iOS에서는 Objective-C와 Swift를 한 파일에서 혼용하여 사용할 수 있습니다.

따라서 기존 프로젝트가 어떤 언어로 구현되어 있는지는 우리에게 영향을 주지 않습니다.

 

이번 게시물에서는 Swift에서 Objective-C 코드를 사용하는 방법을, Objective-C에서 Swift 코드를 사용하는 방법을 알아보겠습니다.

 

Swift에서 Objective-C 사용하기

Swift에서 Objective-C를 사용하는 방법은 자동으로 브릿지 파일을 생성하는 방법과 수동으로 생성하는 방법이 있습니다.

자동으로 생성하는 방식은, Swift 파일을 생성할 때 Xcode에서 브릿지파일을 만들거냐고 물어봅니다. 이때 만들어달라고 하면 알아서 만들어주기 때문에 그대로 사용하면 됩니다.

 

따라서 아래부터는 수동으로 브릿지파일을 만들어 사용하는 방법을 다뤄보겠습니다.

  1. New File > Header File > {project name}-Bridging-Header.h 생성 (이때 브리징 헤더 파일명은 왼쪽과 같은 규칙을 따라야 합니다)
  2. 생성된 헤더파일을 Build Settings에 추가하여 컴파일할 때 참조되도록 해야 합니다.
    참고 : solodevlab.tistory.com/1189
  3. Project > Targets > Build Settings > Defines Module 은 YES 로 설정합니다.
  4. 브리징헤더 ({project name}-Bridging-Header.h) 파일에 사용하고자 하는 Objective-C 소스의 헤더파일을 import 시켜줍니다.  -->  #import "{objc file name}.h"
  5. 그럼 이제 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

반응형

댓글