モケラ

Tech Sheets

mokelab

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)

一覧に戻る