How to use Objective-C CocoaPods in a Swift Project

后端 未结 4 1585
余生分开走
余生分开走 2020-11-29 17:13

Is there a way I can use a CocoaPod written in Objective-C in my Swift project using swift?

Do I just make a bridging header? And if so, can I access the objects, cl

相关标签:
4条回答
  • 2020-11-29 18:09

    AND don't forget to add Bridging Header file name to Target -> Build Settings -> Objective-C Bridging Header

    0 讨论(0)
  • 2020-11-29 18:14

    Basic answer to your question is Yes, you can use objective-c code built with CocoaPods.

    More important question is "How to use such libs?"
    Answer on this question depends on use_frameworks! flag in your Podfile:
    Let's imagine that you want use Objective-C pod with name CoolObjectiveCLib.

    If your pod file uses use_frameworks! flag:

    // Podfile
    use_frameworks!
    pod 'CoolObjectiveCLib'
    

    Then you don't need add any bridge header files.
    Everything that you need is import framework in Swift source file:

    // MyClass.swift
    import CoolObjectiveCLib
    

    Now you can use all classes that are presented in lib.

    If your pod file doesn't use use_frameworks! flag:

    // Podfile
    pod 'CoolObjectiveCLib'
    

    Then you need create bridging header file and import there all necessary Objective-C headers:

    // MyApp-Bridging-Header
    #import "CoolObjectiveCLib.h"
    

    Now you can use all classes that are defined in imported headers.

    0 讨论(0)
  • 2020-11-29 18:16

    You just need a bridging header and import there what you need.

    0 讨论(0)
  • 2020-11-29 18:18

    In podFile use the flag use_frameworks! Inside Xcode in the Pod folder structure in the dependency, you add xxxxxxx-umbrella.h in Support Files.

    In your {PROJECT_NAME}-Bridging-Header.h use:

    #import "xxxxxxx/xxxxxxx-umbrella.h"
    

    It works for me.

    0 讨论(0)
提交回复
热议问题