属性关闭无法查看我的单例共享属性

时间:2017-05-10 09:24:17

标签: swift macos singleton closures

在我的类中获取属性值时,我决定使用闭包,但此值取决于单例值(记录的用户名)。

PYTHONPATH

不知何故,此闭包不识别此单例的class BrokerTVC: NSViewController, DBTable { @IBOutlet weak var table: NSTableView! var mainRequest = { () -> String in switch LoggedUser.shared.type{ case LoggedUser.shared.admin: return "select * from broker where approved = true" case LoggedUser.shared.client: return "select * from broker where approved = true and ..." default: return "" } return "" }} class LoggedUser{ var type: Roles? var iD: String var username: String static let shared = LoggedUser() private init(){ type = .admin iD = "(xx, xxxxxx)" username = "root" }} 属性(类型的值&#34; LoggedUser&#34;没有&#34; admin&#34; < /强>)。我是否错过了闭包如何工作的一些核心原则?

1 个答案:

答案 0 :(得分:1)

关闭时一切都很好。 似乎Roles是一个可选的枚举值 - 所以你应该这样做。

var mainRequest = { () -> String in
    if let type = LoggedUser.shared.type {
        switch type {
            case .admin:
            case .client:
            default: return ""
        }
    }
    return ""
}}