NSCacheを使ってみる
最終更新日:2016-09-18
NSCacheはキーと値の型をテンプレートとして受け取ります。キーはAnyObject
なのでIntやStringではなく、NSNumberやNSObjectを指定する点に注意しましょう。
class User {
var name : String
init(name : String) {
self.name = name
}
}
let cache = NSCache<NSNumber, User>()
cache.setObject(User(name : "moke1"), forKey: 1)
cache.setObject(User(name : "moke2"), forKey: 2)
cache.setObject(User(name : "moke3"), forKey: 3)
// キーに対応する値がなかったらnil
let user = cache.object(forKey: 1)
print(user?.name)
キャッシュに値をいれる時はsetObject(_:forKey:)
を使います。
cache.setObject(User(name : "moke1"), forKey: 1)
キャッシュから値を取り出す時はobject(forKey:)
を使います。キーに対応する値がない場合はnilが返ってきます。
let user = cache.object(forKey: 1)