我在下面的类中定义了枚举:
public class MyError: NSError { public enum Type: Int { case ConnectionError case ServerError } init(type: Type) { super.init(domain: "domain",code: type.rawValue,userInfo: [:]) }}
当我尝试在我的测试中稍后检查错误时:
expect(error.code).to(equal(MyError.Type.ConnectionError.rawValue))
我得到编译错误:类型MyError.Type没有成员ConnectionError
我在这里做错了什么想法?
解决方法 问题是Type是一个Swift关键字,你的自定义类型会混淆编译器.在我在Playground中的测试中,您的代码生成了相同的错误.解决方案是更改任何其他名称的类型.种类示例:
public enum Kind: Int { case ConnectionError case ServerError}init(type: Kind) { super.init(domain: "domain",userInfo: [:])}
然后
MyError.Kind.ConnectionError.rawValue
按预期工作.
总结以上是内存溢出为你收集整理的ios – 无法访问Swift枚举值全部内容,希望文章能够帮你解决ios – 无法访问Swift枚举值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)