有没有办法可以使用swift在我的Swift项目中使用Objective-C编写的CocoaPod?
我只是制作一个桥接头?如果是这样,我可以访问Swift中CocoaPod中的库定义的对象,类和字段吗?
答案 0 :(得分:156)
您的问题的基本答案是,您可以使用使用CocoaPods构建的objective-c代码。
更重要的问题是"如何使用这些库?"
对此问题的回答取决于use_frameworks!
中的Podfile
标志:
让我们假设你想要使用名为CoolObjectiveCLib
的Objective-C pod。
如果您的pod文件使用use_frameworks!
标记:
// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'
然后您不需要添加任何桥头文件 您需要的一切都是Swift源文件中的导入框架:
// MyClass.swift
import CoolObjectiveCLib
现在您可以使用lib中显示的所有类。
如果您的pod文件没有使用use_frameworks!
标记:
// Podfile
pod 'CoolObjectiveCLib'
然后你需要创建桥接头文件并导入所有必需的Objective-C头文件:
// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"
现在您可以使用导入标头中定义的所有类。
答案 1 :(得分:1)
在podFile中使用标记use_frameworks
!
在依赖项中的Pod
文件夹结构中的Xcode内部,您可以在支持文件中添加xxxxxxx-umbrella.h
。
在{PROJECT_NAME}-Bridging-Header.h
使用中:
#import "xxxxxxx/xxxxxxx-umbrella.h"
它对我有用。
答案 2 :(得分:0)
你只需要一个桥接标题并在那里导入你需要的东西。
答案 3 :(得分:0)
并且不要忘记将桥接头文件名添加到Target->构建设置-> Objective-C桥接头