2017-10-15 20 views
-1

私はユーザーと呼ばれる辞書を持つクラスを持っています。 Swiftプログラムの他のクラスからこの辞書にデータを追加して取得したい。私はどうすればいいのですか?Swiftでクラス内の辞書のゲッターセッターメソッドを作成する方法

class Database { 

    class func addUsers(){ 
    // i need to know how to create function like such. 
    } 

    var userIDName: [String:String] = [ 
     "A000123" : "AA", 
     "A000345" : "BB", 
     "A000343" : "CC" 
    ] 

} 

答えて

1
class Database { 
    var userIDName = [String: String]() 
    func addUser(key: String, value: String) { 
     userIDName[key] = value 
    } 

    func getUsers() -> [String: String] { 
     return userIDName 
    } 
} 

あなたは以下のようにユーザーデータを追加して取得することができます:

var users: [String:String] = [ 
     "A000123" : "AA", 
     "A000345" : "BB", 
     "A000343" : "CC" 
    ] 

let database = Database() 

users.forEach({ (key, value) in 
    database.addUser(key: key, value: value) // for adding user 
}) 
print(database.getUsers()) // for getting users 
+0

'addUsers'は1人のユーザしか追加しないので、' addUser'という名前にする必要があります。 – rmaddy

+1

func addUser(ユーザー:ユーザー){ ユーザー[user.userId] =ユーザー } 私はこの設定方法を使用していますが、エラーが表示されます。なにか提案を? let a = User()self.addUser(a) –

-1

あなたがそれは次のように、シングルトンとして使用するように聞こえる以下:

class Database { 
    static let shared = Database() 

    func addUsers(id: String, name: String) { 
     userIDName[id] = name 
    } 

    var userIDName = [String: String]() 
} 

// Usage 
let database = Database.shared 

database.addUsers(id: "A123", name: "AA") 
print(database.userIDName["A123"]) 
+1

がありますそれをシングルトンにする必要はありません。それは必要ではなく、その質問には関係しません。 – rmaddy

+0

@rmaddy OPは彼が他のclasse ** s **からデータを追加または取得すると述べています。したがって、私は彼がプロジェクト全体で単一のオブジェクトとしてそれを使用したいと思っていました。多分それは必要ではないかもしれませんが、それがなぜその質問に関連していないのかを精緻化するのに気を付けるでしょうか? – sCha

関連する問題