0
私はクラスでプロパティの値を取得するときにクロージャを使うことにしましたが、この値はシングルトンの値(ログに記録されたユーザー名)に依存します。プロパティクロージャは私のシングルトンの共有プロパティを見ることができません
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"
}}
どういうわけか、この閉鎖は、(「管理者」を持っていないバリュータイプの「LoggedUser」)は、このシングルトンのshared
プロパティを認識しません。閉鎖の仕組みのいくつかの基本原則を見逃していますか?
理由があったので、私は' switch'声明別のことだ –
まあ、それをアンラップしなければならなかった:)私は私の答えを更新しました –