swift - 无法从框架内访问公共(public)枚举

标签 swift enums swift3

我一直致力于开发一个框架,我决定创建自定义枚举来扩展 Error 协议(protocol),以便在遇到域特定错误时向主机应用程序报告。

public enum MyCustomError: Error {
    case customCase(message: String)
}

从主机应用程序我有一个响应回调,它是另一个具有关联值的枚举

public enum MyCustomResponse {
    case success
    case error(Error)
}

在主机应用程序中形成我尝试通过执行以下操作来访问错误

let responseHandler: (MyCustomResponse) -> Void = { response in

    switch response {
        case .error(let error):
            if case let MyCustomModule.MyCustomError.customCase(theErrorMessage) = error {
                print(theErrorMessage)
            }
    }
}

我得到的是一条来自编译器的消息,告诉我 MyCustomModule 没有名为 MyCustomError 的成员。如果松散 MyCustomModule.,则编译器会提示 Use of unresolved identifier 'MyCustomError'。我正在导入 MyCustomModule,并且 MyCustomError 的访问级别是 public,任何关于如何解决这个问题的想法都将非常感激。

谢谢

注意:我正在通过 cocoapods 版本 1.1.1 开发我的框架,并使用 Xcode 8.2.1,swift 版本 3.0.2,支持 iOS 8.0 及以上版本。

生成的界面

import Foundation 

public enum MyCustomError : Error { 
    case customCase(message: String) 
}

最佳答案

经过很长时间尝试了我能想到的所有小事,甚至沙盒新 repo 中的问题(检查github.com/anuragajwani/framework_pod_enums_test)都无法重现它我结束了重新克隆有问题的存储库并重新应用所有更改并且没有问题。可惜我找不到潜在的问题,但是通过将每个配置设置与沙盒项目进行比较,我放弃了所有匹配的东西。我有预感,它必须与编译器有关,考虑到它有多不稳定,这不足为奇。

关于swift - 无法从框架内访问公共(public)枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855494/

相关文章:

ios - 处理来自 continueUserActivity 方法的 Firebase 邀请

arrays - swift os x 数组二元运算符与 nil != if 语句比较错误

swift - 从不同的 ViewController 中删除 NSNotification Observer

mysql - 如果 ENUM 只允许输入某些数据,它会影响第二列吗?

ios - 如何在 swift 中期望枚举时传递空值

ios - 一对多关系 setter

ios - 错误 : Value of type 'String' has no member 'totalAnswered'

ios - 无效参数不满足 : nibNameMap ! = nil

java - Java中逻辑复杂的EnumSet

ios - 如何让其他应用程序保存文件到我们的应用程序?