我在下面有以下代码,Xcode不断给我一个我不明白如何解决的错误。
class ViewController: UIViewController {
private var manager: Manager?
enum Link {
case faq
case tos
var url: String {
switch self {
case .faq:
return “www.”google.com
case .tos:
return manager!.isFreeUser ? “www”.google.com : “www”.duckduckgo.com
}
}
}
}
错误是:
类型为'ViewController'的实例成员'manager'不能用于嵌套类型'ViewController.Link'的实例
答案 0 :(得分:1)
您正试图在单独的代码环境中访问ViewController
类的属性,即枚举Link
。
一种简单的解决方案是将您的值(在这种情况下,将manager
作为枚举的参数):
enum Link {
case faq
case tos(Manager)
var url: String {
switch self {
case .faq:
return "www.google.com"
case .tos(let manager):
return manager.isFreeUser ? "www.google.com" : "www.duckduckgo.com"
}
}
}
每当您访问枚举值时,请传递您的manager
属性。
print(Link.tos(self.manager!).url