无法从框架内访问 public 枚举
unable to access public enum from within a framework
我一直致力于开发一个框架,我决定创建自定义枚举来扩展错误协议,以便在遇到域特定错误时向主机应用程序报告。
即
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 has no member named 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)
}
经过长时间尝试我能想到的所有小事,甚至 沙盒 新回购中的问题(检查 github.com/anuragajwani/framework_pod_enums_test ) 由于无法重现它,我结束了 re-cloning 有问题的存储库并重新应用所有更改并且它没有问题。可惜我找不到潜在的问题,但是通过将每个配置设置与沙盒项目进行比较,我放弃了所有匹配的东西。我有预感它必须与编译器有关,考虑到它有多不稳定,这不足为奇。
我遇到了完全相同的问题。在我的例子中,我只是在 Build Settings
中设置了 "Build Active Architecture Only" to "No"
,问题就消失了。
我一直致力于开发一个框架,我决定创建自定义枚举来扩展错误协议,以便在遇到域特定错误时向主机应用程序报告。
即
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 has no member named 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)
}
经过长时间尝试我能想到的所有小事,甚至 沙盒 新回购中的问题(检查 github.com/anuragajwani/framework_pod_enums_test ) 由于无法重现它,我结束了 re-cloning 有问题的存储库并重新应用所有更改并且它没有问题。可惜我找不到潜在的问题,但是通过将每个配置设置与沙盒项目进行比较,我放弃了所有匹配的东西。我有预感它必须与编译器有关,考虑到它有多不稳定,这不足为奇。
我遇到了完全相同的问题。在我的例子中,我只是在 Build Settings
中设置了 "Build Active Architecture Only" to "No"
,问题就消失了。