3
私は、SwiftでBSON形式のタイムスタンプ付きオブジェクトIDを生成する必要があります。 ObjectIDはMongo DB用です。これはどのように達成できますか?SwiftでMongo DB ObjectIDを生成するにはどうすればよいですか?
私は、SwiftでBSON形式のタイムスタンプ付きオブジェクトIDを生成する必要があります。 ObjectIDはMongo DB用です。これはどのように達成できますか?SwiftでMongo DB ObjectIDを生成するにはどうすればよいですか?
一つの素朴な解決策は、次のようになります。
func objectId() -> String {
let time = String(Int(NSDate().timeIntervalSince1970), radix: 16, uppercase: false)
let machine = String(arc4random_uniform(900000) + 100000)
let pid = String(arc4random_uniform(9000) + 1000)
let counter = String(arc4random_uniform(900000) + 100000)
return time + machine + pid + counter
}
上記の要件を満たします。ただし、タイムスタンプ以外の部分の乱数文字のみを生成します。完璧な解決策は、machineとpidにはNSProcessInfo
とNSUUID
のようなAPIを使用します。また、カウンターを追跡する必要があります。