首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从cocoapods导入名称中带有点的库?

如何从cocoapods导入名称中带有点的库?
EN

Stack Overflow用户
提问于 2016-12-20 10:55:05
回答 1查看 157关注 0票数 0

我试图链接的图书馆是:

代码语言:javascript
复制
pod 'Socket.IO-Client-Swift'

但是,当我尝试像这样在Bridging-Header中导入它时:

代码语言:javascript
复制
@import Socket.IO-Client-Swift;

我得到以下错误:

模块名称后的期望; 找不到模块Socket

知道我该怎么做才能让它起作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-20 13:37:03

正如我所评论的,应该是@import SocketIO而不是@import Socket.IO-Client-Swift;

但是怎么/为什么?导入的吊舱是'Socket.IO-Client-Swift',而不是'SocketIO',那么这背后的逻辑是什么呢?

实际上,Socket.IO-Client-Swift是存储库(pod)的名称,而不是module名称。

虽然Socket.IO的源目录 -client-源目录中有一个SocketIOClient文件(它确实包含您应该直接使用以创建套接字的SocketIOClient文件/类),但是您没有直接导入它;它类似于以下情况:当您想要使用Date结构-for示例时,您应该导入Foundation

侧边栏注:

您是否知道这是一个合法(有效)代码:

代码语言:javascript
复制
let date = Foundation.Date()

但是由于Foundation是隐式导入的,所以我们通常是这样做的:

代码语言:javascript
复制
let date = Date()

所有框架(例如UIKit )都是一样的。

代码语言:javascript
复制
let view = UIKit.UIView()

:)

最后一边-酒吧。

因此,您要导入(SocketIO)的是包含所有需要的文件-including SocketIOClient.swift的模块的名称-为了让它按应有的方式工作,它出现在它的Package.swift文件中:

let package = Package(名称:"SocketIO“)

包的名称是SocketIO。

另一个例子:

阿拉莫火:存储库的名称是阿拉莫火。而且,这个包裹的名字是阿拉莫火!您可以再次看到它的Package.swift

let package = Package(名称:"Alamofire",排除:"Tests")

因此,存储库的名称和它的包名是相同的,这就是为什么要执行import Alamofire并将其用作Alamofire.request("https://httpbin.org/get")的原因。

希望能帮上忙。

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

https://stackoverflow.com/questions/41240644

复制
相关文章

相似问题

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