NSCacheを個数制限付きで使ってみる
最終更新日:2016-09-18
NSCacheで、キャッシュに入る個数の上限を指定するにはcountLimit
を使います。個数がいっぱいの時に追加した場合、一番古いものから消されます。
class User {
var name : String
init(name : String) {
self.name = name
}
}
let cache = NSCache<NSNumber, User>()
cache.countLimit = 2
cache.setObject(User(name : "moke1"), forKey: 1)
cache.setObject(User(name : "moke2"), forKey: 2)
// これを入れると一番古い1が消される
cache.setObject(User(name : "moke3"), forKey: 3)
let user1 = cache.object(forKey: 1)
print(user1?.name)
let user2 = cache.object(forKey: 2)
print(user2?.name)
結果は次のようになります。
nil
moke2