我试图链接的图书馆是:
pod 'Socket.IO-Client-Swift'但是,当我尝试像这样在Bridging-Header中导入它时:
@import Socket.IO-Client-Swift;我得到以下错误:
模块名称后的期望
;找不到模块Socket

知道我该怎么做才能让它起作用吗?
发布于 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。
侧边栏注:
您是否知道这是一个合法(有效)代码:
let date = Foundation.Date()但是由于Foundation是隐式导入的,所以我们通常是这样做的:
let date = Date()所有框架(例如UIKit )都是一样的。
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")的原因。
希望能帮上忙。
https://stackoverflow.com/questions/41240644
复制相似问题