Software/Swift

Swift 에서 C의 매개변수로 값 넘기기

초인로크 2021. 2. 26. 14:00
반응형

예전부터 TCP/IP를 C언어로 개발하다 보니 아직은 Swift가 어색하다.

 

그래서 SwiftUI의 프로젝트에서 브리지를 사용하여 C언어로 개발 된 함수를 불러 오기로 했다.

 

함수를 그냥 부르는 것 까지는 아무 문제 없이 되었는데, 다음과 같은 문제가 있었다.

 

Swift 파일 안에 [let s = "Hello!!"] 가 있다고 하자,

 

변수 s 를 최종적으로 [void clientMain(char *inform)]에 넘기고 싶다.

 

따라서 "s" 를 "inform"으로 넘겨 줄 경우에 형 변환을 해야 된다.

 

어설프게 나마 다음과 같이 변환을 하였는데,

 

var dataname: [CChar] = inform.cString(using: String.Encoding.utf8)!

clientMain(&dataname)

 

더 좋은 방법이 있다면 수정을 하고 싶다는 생각이 든다.

 

Swift 로 프로그래밍 하는 것이 확실히 C언어 보단 쉬운거 같은데,

 

C언어에 너무 익숙해져 버려서 혼란이 일어나는 것 같다.

반응형