モケラ

Tech Sheets

mokelab

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

一覧に戻る