首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旧图书馆,新CocoaPods

旧图书馆,新CocoaPods
EN

Stack Overflow用户
提问于 2015-01-12 18:54:35
回答 1查看 5.9K关注 0票数 4

由于CocoaPods 0.36可供任何人使用,而且他们现在提供Swift和框架支持,我今天有一个问题困扰着我.

我在我的项目目录中创建Podfile,用以下内容填充它:

代码语言:javascript
复制
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

pod 'AFNetworking'
pod 'SwiftyJSON'

像往常一样运行pod install ..。你知道这个故事。但是当我打开我的.xcworkspace并进入任何一个ViewController和import SwiftyJSON时,它只是起作用了,但是当我尝试使用AFNetworking做同样的事情时,我得到了No such module 'AFNetworking'。当然,我可以创建一个Bridging-Header并以Objective的方式导入它,但是当我阅读博客文章时,我可以看到:

若要在Swift中使用此子规范,而不需要生成伞头,则需要创建桥接头并使用类似于#import <AFNetworking/AFNetworking+UIKit.h的导入。使用生成的伞头,您只需要import AFNetworking,如果您的Podfile中包含了子规范。

如果我错了,请纠正我,但如果我们用CocoaPods添加库,则不再需要手动桥接头,对吗?那么,为什么这不起作用?

EN

回答 1

Stack Overflow用户

发布于 2015-01-12 20:44:00

正如我所想的..。我在OP中提供的这个例子是错误的..。嗯,基本上是正确的,因为它的工作原理是应该的。让我给你举个反例。

我有一个Swift项目,但我只想使用目标C荚(AFNetworking,SSPullToRefresh等)。现在,我们遇到了一些问题,因为当您在Podfile中提供这些Objective类时,它们将作为一个静态库添加到pods目标中。现在您可能正在CocoaPods切换到Frameworks (如果您想知道区别,请阅读问题)。回到话题..。解决这一冲突的办法有两种:

  1. 你手动创建YourProject-Bridging-Header.h#import那些库..。这是以前使用的方式,甚至在Swift集成之前。
  2. 在您的use_frameworks!中包含这个神奇的Podfile方法调用。通过这样做,您可以强制CocoaPods创建框架而不是静态库。

现在,让我解释一下为什么你更喜欢第二个解决方案..。作为OP状态,CocoaPods现在自动创建伞状标头 (了解他们)。这是您跳过手动创建桥接头的方便方法。

我已经找到了一个解决方案,这里,所以如果没有这篇文章,我可能仍然在努力解决这个问题。为作者干杯!

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27908841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档