Mix Swift and C++

Mix Swift and C++ - WWDC23 - Videos - Apple Developer

Basic of interoperability

ex) 포토 앱

image processing framework가 c++로 구성되어있음

스크린샷 2023-10-19 오전 10.24.48.png

스크린샷 2023-10-19 오전 10.25.28.png

  • bridging header 필요 없음
  • build setting에서 c, objective c mode에서 c++로 변경
  • swift file에 들어가서 import 하면 됨

objective c에서 swift를 모두 가져오려면 #import “SampleApp.h”이렇게만 해도 됨

⇒ 즉 bidirectional interoperability가 가능한 거임!

swift는 standard c++을 가져올 수 있음

swift에서 c++을 이해할 수 있는 것들

swift에서 c++을 이해할 수 있는 것들

c++에서 Swit를 이해할 수 있는 것들

c++에서 Swit를 이해할 수 있는 것들

Natural swift APIs

c++에서 swift로 맵핑됨

스크린샷 2023-10-19 오전 10.32.49.png

annotation

스크린샷 2023-10-19 오전 10.33.23.png

스크린샷 2023-10-19 오전 10.34.05.png

스크린샷 2023-10-19 오전 10.34.12.png

  • c++는 기존적으로 value type으로 import됨
  • c++ vector을 collection으로 변환시키기에 for문 사용 가능!
  • c++은 reference type이 없다보니까 default는 value type이지만 custom으로 reference type을 이용

스크린샷 2023-10-19 오전 10.38.56.png

c++에서 swift reference type을 쓰고 싶다면 #import <swift/bridging>을 한 후에 struct 앞에 SWIFT_SHARED_REFERENCE를 넣어주면 됨

스크린샷 2023-10-19 오전 10.41.26.png

  • SWIFT_COMPUTED_PROPERTY라는 애도 있는데 이걸로 쉽게 getter, setter를 쓸 수 있대

이거 말고도 많으니까 찾아보래!

무조건 이렇게 해줘야 함!!

무조건 이렇게 해줘야 함!!