Swift 包管理器 (spm) 协议(protocol),在项目中未被识别

标签 swift protocols swift-package-manager

我刚刚将一个 git 存储库转换为 Swift 包管理器 (spm),一切顺利,它编译并且我可以将它导入到项目中。

不好的是项目没有编译,没有看到协议(protocol)。我的库是一个单一的泛型类,我应该创建一个实现协议(protocol)的枚举,然后将枚举用作该类的泛型。

enum LocalPreferences: String, RCPreferencesProtocol {

我得到: 使用未声明的类型 RCPreferencesProtocol

然后我在尝试使用枚举时遇到更多错误,但我认为这只是因为枚举有错误:

private let localPreferences = RCPreferences<LocalPreferences>()

我明白了:无法专门化非通用定义

有人遇到过这个问题并解决了吗?

此处引用 the library是供引用的lib。

最佳答案

我犯了一个愚蠢的错误,没有在包中将协议(protocol)和类声明为 public。奇怪的是,包的单元测试通过了,却给出了同样的错误。

关于Swift 包管理器 (spm) 协议(protocol),在项目中未被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58705741/

相关文章:

windows - 为什么 Windows 将包含协议(protocol)的完整自定义 URL 传递给处理应用程序?

ios - Swift Package Manager添加了自动第三方库确认和许可

swift - 如何将 CoreML 模型添加到 Swift 包中?

ios - UIView 水龙头识别器不工作

ios - 如何修改推力方向以匹配 SceneKit 中的图像方向?

ios - Swift 协议(protocol)不起作用

ios - 符合协议(protocol)的 Swift 扩展

ios - 将 CocoaPods 与 Swift 包混合使用

iphone - 在 Swift 中将图像保存在另一个图像之上

ios - 如何将按钮添加到 tableview,以便它提取特定于按下它的单元格的用户数据?