我正在尝试对对象进行缓存,以便按需重用。
它有点像UITableViewCell机制。当我需要一个新的对象时,我将从池中获得一个对象(我不关心哪个对象),如果没有可用的对象,我将创建一个新的对象放到缓存中。当我做完它,我会把它放回游泳池,供以后使用。
NSCache是我所知道的最类似的类,但是它是一个键/值缓存,所以这不是我所想的。我不在乎缓存给我哪个对象,我只想从缓存中获取一个(任意一个),使用它,然后在我完成时将它放回去。
那么,我应该用什么来实现这种机制呢?
编辑:它不必来自iOS框架。我也对外部开源库开放。
编辑2:我将举一个例子来澄清:假设我试图创建一个蚂蚁巢(缓存):巢内大约有10000只蚂蚁。
发布于 2015-12-04 20:26:16
使用NSCache。但是您不想处理NSCache的密钥。
所以Ant类是NSObject的子类。使用NSMutableSet来保存每个Ant的hash。有关NSObject方法,请参阅hash协议参考。
使用anyObject去队列,使用addObject:从NSMutableSet中登记哈希值。使用哈希作为NSCache objectForKey:的参数。
这只在Ant对象总量大于NSMutableSet of NSUIntegers时才会节省内存。
这似乎比尝试使用NSCache的线程安全和自动删除创建自定义的NSMutableSet类更容易。
https://stackoverflow.com/questions/30660968
复制相似问题