티스토리 뷰

저는 안드로이드도 같이 하기 때문에, kotlin에 대한 부분도 같이 알고 있는데요.

일반적으로 안드로이드에서 kotlin을 가져와서 사용하는 부분은 설정을 하여주지 않아도 아주 잘 동작을 합니다.

그렇다고 Objective-C에서 swift를 가져와서 사용하는게 어렵지는 않습니다.

아주 약간만 건들어 주면 됩니다.


사실... 지금 제가 요즘 만드는 프로젝트가 Objective-C에 swift를 넣어주고 있습니다. ㅎㅎ


한번만 세팅하여 주면 다른건 신경쓰지 않고, 자기가 사용하고 싶은 언어로 클래스를 만들어서 사용하면 되니까 신경쓰지 않아도 됩니다.


1. Swift에서 Objective-C 사용하기


그냥 이 부분은 설명을 하지 않아도 될 정도이지만, 설명을 궂이하자면 swift파일을 하나 만들게 되면, xcode가 알아서 브릿지 파일을 만들것이냐고 물어봅니다. 한다고 하면 알아서 파일을 만들어주기 때문에, 그냥 사용하도록 합니다.


음... 그런데도 불구하고 안하겠다고 했는데, 사용을 하여야 한다는 분들이 있으실겁니다.


이런 경우에는 브릿지 헤더 파일을 일단 만듭니다.


그리고 Project > Build Setting > Swift Compiler - Code Generation > Objective-C Bridging Header에 추가를 하여 줍니다.


Example/Example-Bridging-Header.h 이런 형태가 되겠죠.


2. Objective-C에서 Swift 사용하기


쉽게 설명하면 파일에 어노테이션을 붙여주면 이 녀석을 Objective-C에서 사용 가능합니다.


- @objc 를 붙여줍니다. 괄호하고 이름을 적어주면 Objective-C에서 적어준 이름으로 인식을 하지만 무언가 불편해서 그냥 씁니다.

- 클래스를 아예 NSObject를 상속받습니다.


1
2
3
4
5
6
7
8
9
10
11
12
@objc (Example)
class Example: NSObject {
    class func example1() -> String {
        // class method로 그냥 접근 가능합니다. Objective-C에서는 [Example example1]으로 접근가능.
    }
 
    func example2() -> Int {
        // 접근을 하려면 생성을 하여서 사용합니다.
        // Example* example = [Example new];
        // [example example2];
    }
}
cs


자... 마지막 한가지가 남았는데요.


이렇게 만든 Swift는 Objective-C에서 사용하고 싶다면 #import "Example-Swift.h" 이런 형태로 추가를 하여 주어야 합니다.

Example는 프로젝트의 이름인데요. 이 파일은 xcode에서 미리 지정하여서 만들어 주므로 저렇게만 만들어주면 됩니다.


아... 위에 new를 사용한것은 저는 그냥 편의상 저렇게 작성을 하는데요... alloc하고 init을 한번에 하여줍니다. 이해를 못하는 분들도 있으셔서...

그리고 혹시나 Swift 파일을 찾지 못하는 일이 생긴다면, clean 한번 해주시면 아주 잘될겁니다.


즐거운 코딩 되세요.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함